From 6d89be05aaee7727dd13d8a29eae2e81c90ba55f Mon Sep 17 00:00:00 2001 From: AlphaBoom <30779939+AlphaBoom@users.noreply.github.com> Date: Thu, 31 Oct 2024 19:27:33 +0800 Subject: [PATCH] Hanime1.me: Fix tags filter (#339) --- src/zh/hanime1/build.gradle | 2 +- .../animeextension/zh/hanime1/Hanime1.kt | 33 +++++++++++++++++-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/zh/hanime1/build.gradle b/src/zh/hanime1/build.gradle index 9f76db85..9026207b 100644 --- a/src/zh/hanime1/build.gradle +++ b/src/zh/hanime1/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Hanime1' extClass = '.Hanime1' - extVersionCode = 1 + extVersionCode = 2 isNsfw = true } diff --git a/src/zh/hanime1/src/eu/kanade/tachiyomi/animeextension/zh/hanime1/Hanime1.kt b/src/zh/hanime1/src/eu/kanade/tachiyomi/animeextension/zh/hanime1/Hanime1.kt index 473b29e7..49f297c0 100644 --- a/src/zh/hanime1/src/eu/kanade/tachiyomi/animeextension/zh/hanime1/Hanime1.kt +++ b/src/zh/hanime1/src/eu/kanade/tachiyomi/animeextension/zh/hanime1/Hanime1.kt @@ -154,7 +154,22 @@ class Hanime1 : AnimeHttpSource(), ConfigurableAnimeSource { if (query.isNotEmpty()) { searchUrl.addQueryParameter("query", query) } - filters.list.forEach { + filters.list.flatMap { + when (it) { + is TagsFilter -> { + it.state.flatMap { inner -> + if (inner is CategoryFilter) { + inner.state + } else { + listOf(inner) + } + } + } + + is AnimeFilter.Group<*> -> it.state + else -> listOf(it) + } + }.forEach { when (it) { is QueryFilter -> { if (it.selected.isNotEmpty()) { @@ -162,7 +177,18 @@ class Hanime1 : AnimeHttpSource(), ConfigurableAnimeSource { } } - is TagFilter -> searchUrl.addQueryParameter(it.key, it.name) + is BroadMatchFilter -> { + if (it.state) { + searchUrl.addQueryParameter(it.key, "on") + } + } + + is TagFilter -> { + if (it.state) { + searchUrl.addQueryParameter(it.key, it.name) + } + } + else -> {} } } @@ -258,7 +284,8 @@ class Hanime1 : AnimeHttpSource(), ConfigurableAnimeSource { entries = arrayOf("1080P", "720P", "480P") entryValues = entries setDefaultValue(DEFAULT_QUALITY) - summary = "當前選擇:${preferences.getString(PREF_KEY_VIDEO_QUALITY, DEFAULT_QUALITY)}" + summary = + "當前選擇:${preferences.getString(PREF_KEY_VIDEO_QUALITY, DEFAULT_QUALITY)}" setOnPreferenceChangeListener { _, newValue -> summary = "當前選擇:${newValue as String}" true