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() }