From 1a4c98f704a17c6a5010bd8a76adbd806414d977 Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Mon, 2 Oct 2023 07:24:03 -0300 Subject: [PATCH] fix(pt/goanimes): Fix video extractor (#2296) --- .../dooplay/goanimes/additional.gradle | 4 ++ .../dooplay/goanimes/src/GoAnimes.kt | 53 ++++++++++++++----- .../src/extractors/GoAnimesExtractor.kt | 49 ++++++++++------- .../goanimes/src/extractors/JsDecoder.kt | 7 ++- .../goanimes/src/extractors/JsUnpacker.kt | 40 -------------- .../src/extractors/LinkfunBypasser.kt | 52 ++++++++++++++++++ .../src/extractors/PlaylistExtractor.kt | 11 ++-- .../multisrc/dooplay/DooPlayGenerator.kt | 3 +- 8 files changed, 140 insertions(+), 79 deletions(-) create mode 100644 multisrc/overrides/dooplay/goanimes/additional.gradle delete mode 100644 multisrc/overrides/dooplay/goanimes/src/extractors/JsUnpacker.kt create mode 100644 multisrc/overrides/dooplay/goanimes/src/extractors/LinkfunBypasser.kt diff --git a/multisrc/overrides/dooplay/goanimes/additional.gradle b/multisrc/overrides/dooplay/goanimes/additional.gradle new file mode 100644 index 000000000..bbef4073f --- /dev/null +++ b/multisrc/overrides/dooplay/goanimes/additional.gradle @@ -0,0 +1,4 @@ +dependencies { + implementation(project(":lib-playlist-utils")) + implementation("dev.datlag.jsunpacker:jsunpacker:1.0.1") +} diff --git a/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt b/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt index 938a672a7..709fa7b93 100644 --- a/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt +++ b/multisrc/overrides/dooplay/goanimes/src/GoAnimes.kt @@ -3,12 +3,17 @@ package eu.kanade.tachiyomi.animeextension.pt.goanimes import eu.kanade.tachiyomi.animeextension.pt.goanimes.extractors.BloggerJWPlayerExtractor import eu.kanade.tachiyomi.animeextension.pt.goanimes.extractors.GoAnimesExtractor import eu.kanade.tachiyomi.animeextension.pt.goanimes.extractors.JsDecoder +import eu.kanade.tachiyomi.animeextension.pt.goanimes.extractors.LinkfunBypasser import eu.kanade.tachiyomi.animeextension.pt.goanimes.extractors.PlaylistExtractor import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.multisrc.dooplay.DooPlay import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +import kotlinx.coroutines.awaitAll +import kotlinx.coroutines.runBlocking import okhttp3.Response import org.jsoup.nodes.Element @@ -20,6 +25,9 @@ class GoAnimes : DooPlay( // ============================== Popular =============================== override fun popularAnimeSelector() = "div#featured-titles article.item.tvshows > div.poster" + // =============================== Latest =============================== + override val latestUpdatesPath = "lancamentos" + // ============================== Episodes ============================== override val seasonListSelector = "div#seasons > *" @@ -31,9 +39,9 @@ class GoAnimes : DooPlay( // Episodes are listed at another page val url = season.attr("href") - return client.newCall(GET(url)) + return client.newCall(GET(url, headers)) .execute() - .asJsoup() + .use { it.asJsoup() } .let(::getSeasonEpisodes) } @@ -60,20 +68,26 @@ class GoAnimes : DooPlay( override val prefQualityValues = arrayOf("240p", "360p", "480p", "720p", "1080p") override val prefQualityEntries = prefQualityValues + private val goanimesExtractor by lazy { GoAnimesExtractor(client, headers) } + private val linkfunBypasser by lazy { LinkfunBypasser(client) } + override fun videoListParse(response: Response): List