From 5b0da5a8cde490390581d44862da75c7aff1f43f Mon Sep 17 00:00:00 2001 From: hollow <35398794+hollowshiroyuki@users.noreply.github.com> Date: Sun, 6 Aug 2023 23:03:06 +0000 Subject: [PATCH] fix(fr/animesama): Various fixes (#2023) * Popular category parser * Voice preference selection * NSFW status --- src/fr/animesama/build.gradle | 4 ++-- .../animeextension/fr/animesama/AnimeSama.kt | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/fr/animesama/build.gradle b/src/fr/animesama/build.gradle index d3eac9248..5f4e006a4 100644 --- a/src/fr/animesama/build.gradle +++ b/src/fr/animesama/build.gradle @@ -8,9 +8,9 @@ ext { extName = 'Anime-Sama' pkgNameSuffix = 'fr.animesama' extClass = '.AnimeSama' - extVersionCode = 2 + extVersionCode = 3 libVersion = 13 - containsNsfw = true + containsNsfw = false } dependencies { diff --git a/src/fr/animesama/src/eu/kanade/tachiyomi/animeextension/fr/animesama/AnimeSama.kt b/src/fr/animesama/src/eu/kanade/tachiyomi/animeextension/fr/animesama/AnimeSama.kt index 6e5c43953..eb97b923d 100644 --- a/src/fr/animesama/src/eu/kanade/tachiyomi/animeextension/fr/animesama/AnimeSama.kt +++ b/src/fr/animesama/src/eu/kanade/tachiyomi/animeextension/fr/animesama/AnimeSama.kt @@ -50,15 +50,18 @@ class AnimeSama : ConfigurableAnimeSource, AnimeHttpSource() { // ============================== Popular =============================== override fun popularAnimeParse(response: Response): AnimesPage { - val animes = response.asJsoup() - val seasons = animes.select("h2:contains(les classiques) + .scrollBarStyled > div").flatMap { - val animeUrl = it.getElementsByTag("a").attr("href") + val doc = response.body.string() + val page = response.request.url.fragment?.toInt() ?: 0 + val regex = Regex("^\\s*carteClassique\\(\\s*.*?\\s*,\\s*\"(.*?)\".*\\)", RegexOption.MULTILINE) + val chunks = regex.findAll(doc).chunked(5).toList() + val seasons = chunks.getOrNull(page - 1)?.flatMap { + val animeUrl = "$baseUrl/catalogue/${it.groupValues[1]}" fetchAnimeSeasons(animeUrl) - } - return AnimesPage(seasons, false) + }?.toList() ?: emptyList() + return AnimesPage(seasons, page < chunks.size) } - override fun popularAnimeRequest(page: Int): Request = GET(baseUrl) + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/#$page") // =============================== Latest =============================== override fun latestUpdatesParse(response: Response): AnimesPage { @@ -144,9 +147,8 @@ class AnimeSama : ConfigurableAnimeSource, AnimeHttpSource() { return this.sortedWith( compareBy( - { it.quality.contains(voices) }, + { it.quality.contains(voices, true) }, { it.quality.contains(quality) }, - { Regex("""(\d+)p""").find(it.quality)?.groupValues?.get(1)?.toIntOrNull() ?: 0 }, ), ).reversed() }