From 3341c3db12107f074c7c9537ea35c799678b8387 Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Mon, 4 Sep 2023 07:27:48 -0300 Subject: [PATCH] feat(hi/animesaga): Convert to dooplay multisrc (#2145) --- .../lib/chillxextractor/ChillxExtractor.kt | 10 + .../dooplay/animesaga/additional.gradle | 3 + .../animesaga/res/mipmap-hdpi/ic_launcher.png | Bin .../animesaga/res/mipmap-mdpi/ic_launcher.png | Bin .../res/mipmap-xhdpi/ic_launcher.png | Bin .../res/mipmap-xxhdpi/ic_launcher.png | Bin .../res/mipmap-xxxhdpi/ic_launcher.png | Bin .../dooplay/animesaga/src/AnimeSAGA.kt | 62 ++++ .../multisrc/dooplay/DooPlayGenerator.kt | 1 + src/hi/animesaga/AndroidManifest.xml | 2 - src/hi/animesaga/build.gradle | 16 - src/hi/animesaga/res/web_hi_res_512.png | Bin 42631 -> 0 bytes .../animeextension/hi/animesaga/AnimeSAGA.kt | 343 ------------------ .../hi/animesaga/AnimeSAGAFilters.kt | 139 ------- 14 files changed, 76 insertions(+), 500 deletions(-) create mode 100644 multisrc/overrides/dooplay/animesaga/additional.gradle rename {src/hi => multisrc/overrides/dooplay}/animesaga/res/mipmap-hdpi/ic_launcher.png (100%) rename {src/hi => multisrc/overrides/dooplay}/animesaga/res/mipmap-mdpi/ic_launcher.png (100%) rename {src/hi => multisrc/overrides/dooplay}/animesaga/res/mipmap-xhdpi/ic_launcher.png (100%) rename {src/hi => multisrc/overrides/dooplay}/animesaga/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {src/hi => multisrc/overrides/dooplay}/animesaga/res/mipmap-xxxhdpi/ic_launcher.png (100%) create mode 100644 multisrc/overrides/dooplay/animesaga/src/AnimeSAGA.kt delete mode 100644 src/hi/animesaga/AndroidManifest.xml delete mode 100644 src/hi/animesaga/build.gradle delete mode 100644 src/hi/animesaga/res/web_hi_res_512.png delete mode 100644 src/hi/animesaga/src/eu/kanade/tachiyomi/animeextension/hi/animesaga/AnimeSAGA.kt delete mode 100644 src/hi/animesaga/src/eu/kanade/tachiyomi/animeextension/hi/animesaga/AnimeSAGAFilters.kt diff --git a/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/ChillxExtractor.kt b/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/ChillxExtractor.kt index c4d2ce469..6a4ee7da0 100644 --- a/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/ChillxExtractor.kt +++ b/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/ChillxExtractor.kt @@ -10,6 +10,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.json.Json import okhttp3.Headers import okhttp3.OkHttpClient +import org.jsoup.Jsoup import uy.kohesive.injekt.injectLazy class ChillxExtractor(private val client: OkHttpClient, private val headers: Headers) { @@ -23,6 +24,7 @@ class ChillxExtractor(private val client: OkHttpClient, private val headers: Hea private val REGEX_MASTER_JS by lazy { Regex("""MasterJS\s*=\s*'([^']+)""") } private val REGEX_SOURCES by lazy { Regex("""sources:\s*\[\{"file":"([^"]+)""") } private val REGEX_FILE by lazy { Regex("""file: ?"([^"]+)"""") } + private val REGEX_SOURCE by lazy { Regex("""source = ?"([^"]+)"""")} // matches "[language]https://...," private val REGEX_SUBS by lazy { Regex("""\[(.*?)\](.*?)"?\,""") } @@ -41,9 +43,17 @@ class ChillxExtractor(private val client: OkHttpClient, private val headers: Hea val masterUrl = REGEX_SOURCES.find(decryptedScript)?.groupValues?.get(1) ?: REGEX_FILE.find(decryptedScript)?.groupValues?.get(1) + ?: REGEX_SOURCE.find(decryptedScript)?.groupValues?.get(1) ?: return emptyList() val subtitleList = buildList { + body.takeIf { it.contains(" { + val playerUrls = response.use { it.asJsoup() } + .select("ul#playeroptionsul li:not([id=player-option-trailer])") + .map(::getPlayerUrl) + + return playerUrls.flatMap { url -> + runCatching { + getPlayerVideos(url) + }.getOrElse { emptyList() } + } + } + + private val chillxExtractor by lazy { ChillxExtractor(client, headers) } + + private fun getPlayerVideos(url: String): List