From db586045d76d35049691018d3306108891952d35 Mon Sep 17 00:00:00 2001 From: dragonx943 Date: Sun, 14 Sep 2025 08:43:12 +0700 Subject: [PATCH] VioletScans: Fix warns --- .../kotatsu/parsers/site/en/VioletScans.kt | 49 +++++-------------- 1 file changed, 13 insertions(+), 36 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/VioletScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/VioletScans.kt index a58a3b2f..90f07557 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/VioletScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/VioletScans.kt @@ -4,13 +4,8 @@ import org.json.JSONObject import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.config.ConfigKey -import org.koitharu.kotatsu.parsers.core.FlexiblePagedMangaParser +import org.koitharu.kotatsu.parsers.core.PagedMangaParser import org.koitharu.kotatsu.parsers.model.* -import org.koitharu.kotatsu.parsers.model.search.MangaSearchQuery -import org.koitharu.kotatsu.parsers.model.search.MangaSearchQueryCapabilities -import org.koitharu.kotatsu.parsers.model.search.SearchCapability -import org.koitharu.kotatsu.parsers.model.search.QueryCriteria.* -import org.koitharu.kotatsu.parsers.model.search.SearchableField.* import org.koitharu.kotatsu.parsers.util.generateUid import org.koitharu.kotatsu.parsers.util.parseHtml import org.koitharu.kotatsu.parsers.util.selectFirstOrThrow @@ -21,7 +16,12 @@ import java.util.Locale @MangaSourceParser("VIOLETSCANS", "VioletScans", "en") internal class VioletScans(context: MangaLoaderContext) : - FlexiblePagedMangaParser(context, MangaParserSource.VIOLETSCANS, 12) { + PagedMangaParser(context, MangaParserSource.VIOLETSCANS, 12) { + + override val filterCapabilities: MangaListFilterCapabilities + get() = MangaListFilterCapabilities( + isSearchSupported = true, + ) override val configKeyDomain: ConfigKey.Domain = ConfigKey.Domain("violetscans.com") @@ -32,37 +32,14 @@ internal class VioletScans(context: MangaLoaderContext) : override val availableSortOrders: Set = setOf(SortOrder.NEWEST) - override val searchQueryCapabilities: MangaSearchQueryCapabilities - get() = MangaSearchQueryCapabilities( - SearchCapability( - field = TITLE_NAME, - criteriaTypes = setOf(Match::class), - isMultiple = false, - ), - ) - override suspend fun getFilterOptions(): MangaListFilterOptions = MangaListFilterOptions() - override suspend fun getListPage(query: MangaSearchQuery, page: Int): List { - var searchParameter = "" - query.criteria.forEach { criterion -> - when (criterion) { - is Match<*> -> { - if (criterion.field == TITLE_NAME) { - searchParameter = criterion.value.toString() - } - } - - is Exclude<*> -> null - is Range<*> -> null - is Include<*> -> null - } - } - // scrapeNonSearchList has considerable less payload as response so this is a optimization - return when { - searchParameter.isNotEmpty() -> scrapeSearchList(searchParameter, page) - else -> scrapeNonSearchList(page) - } + override suspend fun getListPage(page: Int, order: SortOrder, filter: MangaListFilter): List { + return if (!filter.query.isNullOrEmpty()) { + scrapeSearchList(filter.query, page) + } else { + scrapeNonSearchList(page) + } } private suspend fun scrapeNonSearchList(page: Int): List {