diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 61c2c8f7..90cbe6a2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -24,7 +24,6 @@ rxjava = { module = "io.reactivex:rxjava", version = "1.3.8" } jsoup = { module = "org.jsoup:jsoup", version = "1.16.1" } okhttp = { module = "com.squareup.okhttp3:okhttp", version = "5.0.0-alpha.11" } quickjs = { module = "app.cash.quickjs:quickjs-android", version = "0.9.2" } -jsunpacker = { module = "dev.datlag.jsunpacker:jsunpacker", version = "1.0.1" } [bundles] common = ["kotlin-stdlib", "injekt", "rxjava", "kotlin-protobuf", "kotlin-json", "jsoup", "okhttp", "aniyomi-lib", "quickjs", "coroutines-core", "coroutines-android"] diff --git a/lib-multisrc/animestream/build.gradle.kts b/lib-multisrc/animestream/build.gradle.kts index e2f11e9c..5e2a19a1 100644 --- a/lib-multisrc/animestream/build.gradle.kts +++ b/lib-multisrc/animestream/build.gradle.kts @@ -2,4 +2,4 @@ plugins { id("lib-multisrc") } -baseVersionCode = 3 +baseVersionCode = 2 \ No newline at end of file diff --git a/lib-multisrc/animestream/src/eu/kanade/tachiyomi/multisrc/animestream/AnimeStream.kt b/lib-multisrc/animestream/src/eu/kanade/tachiyomi/multisrc/animestream/AnimeStream.kt index d6a25493..fbd2a189 100644 --- a/lib-multisrc/animestream/src/eu/kanade/tachiyomi/multisrc/animestream/AnimeStream.kt +++ b/lib-multisrc/animestream/src/eu/kanade/tachiyomi/multisrc/animestream/AnimeStream.kt @@ -117,11 +117,7 @@ abstract class AnimeStream( } protected open fun searchAnimeByPathParse(response: Response): AnimesPage { - val details = animeDetailsParse(response.asJsoup()).apply { - setUrlWithoutDomain(response.request.url.toString()) - initialized = true - } - + val details = animeDetailsParse(response.asJsoup()) return AnimesPage(listOf(details), false) } diff --git a/lib-multisrc/dooplay/build.gradle.kts b/lib-multisrc/dooplay/build.gradle.kts index 9dce2478..0024039f 100644 --- a/lib-multisrc/dooplay/build.gradle.kts +++ b/lib-multisrc/dooplay/build.gradle.kts @@ -2,4 +2,4 @@ plugins { id("lib-multisrc") } -baseVersionCode = 2 +baseVersionCode = 1 \ No newline at end of file diff --git a/lib-multisrc/dooplay/src/eu/kanade/tachiyomi/multisrc/dooplay/DooPlay.kt b/lib-multisrc/dooplay/src/eu/kanade/tachiyomi/multisrc/dooplay/DooPlay.kt index 7756075c..818496c8 100644 --- a/lib-multisrc/dooplay/src/eu/kanade/tachiyomi/multisrc/dooplay/DooPlay.kt +++ b/lib-multisrc/dooplay/src/eu/kanade/tachiyomi/multisrc/dooplay/DooPlay.kt @@ -155,11 +155,7 @@ abstract class DooPlay( // =============================== Search =============================== private fun searchAnimeByPathParse(response: Response): AnimesPage { - val details = animeDetailsParse(response).apply { - setUrlWithoutDomain(response.request.url.toString()) - initialized = true - } - + val details = animeDetailsParse(response) return AnimesPage(listOf(details), false) } 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 747db057..1ea54de1 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 @@ -1,6 +1,5 @@ package eu.kanade.tachiyomi.lib.chillxextractor -import android.util.Log import eu.kanade.tachiyomi.animesource.model.Track import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.lib.cryptoaes.CryptoAES @@ -52,7 +51,6 @@ class ChillxExtractor(private val client: OkHttpClient, private val headers: Hea val subtitleList = buildList { val subtitles = REGEX_SUBS.findAll(decryptedScript) subtitles.forEach { - Log.d("ChillxExtractor", "Found subtitle: ${it.groupValues}") add(Track(it.groupValues[1], decodeUnicodeEscape(it.groupValues[2]))) } } diff --git a/lib/dood-extractor/src/main/java/eu/kanade/tachiyomi/lib/doodextractor/DoodExtractor.kt b/lib/dood-extractor/src/main/java/eu/kanade/tachiyomi/lib/doodextractor/DoodExtractor.kt index 9b626958..2d2c460c 100644 --- a/lib/dood-extractor/src/main/java/eu/kanade/tachiyomi/lib/doodextractor/DoodExtractor.kt +++ b/lib/dood-extractor/src/main/java/eu/kanade/tachiyomi/lib/doodextractor/DoodExtractor.kt @@ -5,50 +5,36 @@ import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.network.GET import okhttp3.Headers import okhttp3.OkHttpClient -import java.net.URI class DoodExtractor(private val client: OkHttpClient) { fun videoFromUrl( url: String, - prefix: String? = null, + quality: String? = null, redirect: Boolean = true, externalSubs: List = emptyList(), ): Video? { + val newQuality = quality ?: ("Doodstream" + if (redirect) " mirror" else "") + return runCatching { val response = client.newCall(GET(url)).execute() val newUrl = if (redirect) response.request.url.toString() else url - val doodHost = getBaseUrl(newUrl) + val doodHost = Regex("https://(.*?)/").find(newUrl)!!.groupValues[1] val content = response.body.string() if (!content.contains("'/pass_md5/")) return null - - // Obtener la calidad del título de la página - val extractedQuality = Regex("\\d{3,4}p") - .find(content.substringAfter("").substringBefore("")) - ?.groupValues - ?.getOrNull(0) - - // Determinar la calidad a usar - val newQuality = extractedQuality ?: ( if (redirect) " mirror" else "") - - // Obtener el hash MD5 - val md5 = doodHost + (Regex("/pass_md5/[^']*").find(content)?.value ?: return null) + val md5 = content.substringAfter("'/pass_md5/").substringBefore("',") val token = md5.substringAfterLast("/") - val randomString = createHashTable() + val randomString = getRandomString() val expiry = System.currentTimeMillis() - - // Obtener la URL del video val videoUrlStart = client.newCall( GET( - md5, + "https://$doodHost/pass_md5/$md5", Headers.headersOf("referer", newUrl), ), ).execute().body.string() - - val trueUrl = "$videoUrlStart$randomString?token=$token&expiry=$expiry" - - Video(trueUrl, prefix + "Doodstream " + newQuality , trueUrl, headers = doodHeaders(doodHost), subtitleTracks = externalSubs) + val videoUrl = "$videoUrlStart$randomString?token=$token&expiry=$expiry" + Video(videoUrl, newQuality, videoUrl, headers = doodHeaders(doodHost), subtitleTracks = externalSubs) }.getOrNull() } @@ -58,27 +44,16 @@ class DoodExtractor(private val client: OkHttpClient) { redirect: Boolean = true, ): List