From 8a3c0e02f69dc1bf634d9945ec5532350d1fa749 Mon Sep 17 00:00:00 2001 From: devi Date: Tue, 10 Sep 2024 15:26:58 +0200 Subject: [PATCH] Add relevance sort order for good filters with text searches Adding the added filter --- .../org/koitharu/kotatsu/parsers/model/SortOrder.kt | 3 +++ .../koitharu/kotatsu/parsers/site/all/MangaDexParser.kt | 9 ++++++--- .../kotatsu/parsers/site/es/TuMangaOnlineParser.kt | 1 + .../koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt | 8 +------- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/SortOrder.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/SortOrder.kt index 9d743ae2..bc763d4a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/model/SortOrder.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/model/SortOrder.kt @@ -11,4 +11,7 @@ enum class SortOrder { NEWEST_ASC, ALPHABETICAL, ALPHABETICAL_DESC, + ADDED, + ADDED_ASC, + RELEVANCE, } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt index 09cf0211..0ebb39f9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt @@ -59,7 +59,7 @@ internal class MangaDexParser(context: MangaLoaderContext) : MangaParser(context is MangaListFilter.Search -> { append("&title=") append(filter.query) - append("&contentRating[]=safe&contentRating[]=suggestive&contentRating[]=erotica&contentRating[]=pornographic") + append("&contentRating[]=safe&contentRating[]=suggestive&contentRating[]=erotica&contentRating[]=pornographic&order[relevance]=desc") } is MangaListFilter.Advanced -> { @@ -99,10 +99,13 @@ internal class MangaDexParser(context: MangaLoaderContext) : MangaParser(context SortOrder.RATING_ASC -> "[rating]=asc" SortOrder.ALPHABETICAL -> "[title]=asc" SortOrder.ALPHABETICAL_DESC -> "[title]=desc" - SortOrder.NEWEST -> "[createdAt]=desc" - SortOrder.NEWEST_ASC -> "[createdAt]=asc" + SortOrder.NEWEST -> "[year]=desc" + SortOrder.NEWEST_ASC -> "[year]=asc" SortOrder.POPULARITY -> "[followedCount]=desc" SortOrder.POPULARITY_ASC -> "[followedCount]=asc" + SortOrder.ADDED -> "[createdAt]=desc" + SortOrder.ADDED_ASC -> "[createdAt]=asc" + SortOrder.RELEVANCE -> "&order[relevance]=desc" }, ) filter.states.forEach { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt index 7b3220fc..877ebc7b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt @@ -66,6 +66,7 @@ class TuMangaOnlineParser(context: MangaLoaderContext) : PagedMangaParser( SortOrder.ALPHABETICAL_DESC -> "alphabetically&order_dir=desc" SortOrder.RATING -> "score&order_dir=desc" SortOrder.RATING_ASC -> "score&order_dir=asc" + else -> "release_date&order_dir=desc" }, ) append("&filter_by=title") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt index dfbafffb..83ffb7b0 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/MangaWtfParser.kt @@ -67,13 +67,7 @@ class MangaWtfParser( SortOrder.POPULARITY -> "viewsCount,desc" SortOrder.RATING -> "likesCount,desc" SortOrder.NEWEST -> "createdAt,desc" - SortOrder.ALPHABETICAL, - SortOrder.ALPHABETICAL_DESC, - SortOrder.UPDATED_ASC, - SortOrder.POPULARITY_ASC, - SortOrder.RATING_ASC, - SortOrder.NEWEST_ASC, - -> throw IllegalArgumentException("Unsupported ${filter.sortOrder}") + else -> throw IllegalArgumentException("Unsupported ${filter.sortOrder}") }, ) if (filter.tags.isNotEmpty()) {