From f7821b01f6b646ebead63e77ae9d9fafe2585a00 Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Mon, 10 Jul 2023 19:00:09 +0000 Subject: [PATCH] fix(pt/goanimes): Fix episode list (#1884) --- .../dooplay/goanimes/src/GoAnimes.kt | 23 +++++++++++++++++-- .../multisrc/dooplay/DooPlayGenerator.kt | 2 +- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt b/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt index fc7edefcc..938a672a7 100644 --- a/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt +++ b/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt @@ -26,7 +26,7 @@ class GoAnimes : DooPlay( override fun getSeasonEpisodes(season: Element): List { // All episodes are listed under a single page season.selectFirst(episodeListSelector())?.let { - return super.getSeasonEpisodes(season) + return getSeasonEpisodesRecursive(season) } // Episodes are listed at another page @@ -34,7 +34,26 @@ class GoAnimes : DooPlay( return client.newCall(GET(url)) .execute() .asJsoup() - .let { super.getSeasonEpisodes(it) } + .let(::getSeasonEpisodes) + } + + private val episodeListNextPageSelector = "div.pagination span.current + a:not(.arrow_pag)" + + private fun getSeasonEpisodesRecursive(season: Element): List { + var doc = season.root() + return buildList { + do { + if (isNotEmpty()) { + doc.selectFirst(episodeListNextPageSelector)?.let { + val url = it.attr("abs:href") + doc = client.newCall(GET(url, headers)).execute() + .use { it.asJsoup() } + } + } + addAll(super.getSeasonEpisodes(doc)) + } while (doc.selectFirst(episodeListNextPageSelector) != null) + reversed() + } } // ============================ Video Links ============================= diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/dooplay/DooPlayGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/dooplay/DooPlayGenerator.kt index 302bd56e8..0d1c93d2c 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/dooplay/DooPlayGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/dooplay/DooPlayGenerator.kt @@ -20,7 +20,7 @@ class DooPlayGenerator : ThemeSourceGenerator { SingleLang("Cinemathek", "https://cinemathek.net", "de", isNsfw = true, overrideVersionCode = 12), SingleLang("CineVision", "https://cinevisionv3.online", "pt-BR", isNsfw = true, overrideVersionCode = 5), SingleLang("DonghuaX", "https://donghuax.com", "pt-BR", isNsfw = false), - SingleLang("GoAnimes", "https://goanimes.net", "pt-BR", isNsfw = true, overrideVersionCode = 1), + SingleLang("GoAnimes", "https://goanimes.net", "pt-BR", isNsfw = true, overrideVersionCode = 2), SingleLang("Kinoking", "https://kinoking.cc", "de", isNsfw = false, overrideVersionCode = 15), SingleLang("Multimovies", "https://multimovies.shop", "en", isNsfw = false, overrideVersionCode = 7), SingleLang("pactedanime", "https://pactedanime.com", "en", isNsfw = false, className = "PactedAnime", overrideVersionCode = 4),