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 5d10181e..d05720e0 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 @@ -44,6 +44,7 @@ class ChillxExtractor(private val client: OkHttpClient, private val headers: Hea url = it.url, quality = it.quality, videoUrl = it.videoUrl, + headers = it.headers, audioTracks = it.audioTracks, subtitleTracks = playlistUtils.fixSubtitles(it.subtitleTracks), ) diff --git a/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/WebViewResolver.kt b/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/WebViewResolver.kt index ced513b1..1b647f96 100644 --- a/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/WebViewResolver.kt +++ b/lib/chillx-extractor/src/main/java/eu/kanade/tachiyomi/lib/chillxextractor/WebViewResolver.kt @@ -10,6 +10,7 @@ import android.webkit.WebResourceResponse import android.webkit.WebView import android.webkit.WebViewClient import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Headers import okhttp3.OkHttpClient import uy.kohesive.injekt.injectLazy @@ -60,8 +61,8 @@ class WebViewResolver( view: WebView?, request: WebResourceRequest? ): WebResourceResponse? { - if (request?.url.toString().contains("assets/js/library")) { - return patchScript(request!!.url.toString(), interfaceName) + if (request?.url.toString().equals(embedUrl, true)) { + return patchBody(request!!.url.toString(), interfaceName) ?: super.shouldInterceptRequest(view, request) } @@ -92,12 +93,12 @@ class WebViewResolver( return List(length) { charPool.random() }.joinToString("") } - private fun patchScript(scriptUrl: String, interfaceName: String): WebResourceResponse? { - val scriptBody = client.newCall(GET(scriptUrl)).execute().body.string() + private fun patchBody(url: String, interfaceName: String): WebResourceResponse? { + val html = client.newCall(GET(url, globalHeaders)).execute().asJsoup() val oldFunc = randomString() - val newBody = buildString { - append( + val script = html.createElement("script").apply { + appendText( """ const $oldFunc = Function; window.Function = function (...args) { @@ -108,17 +109,17 @@ class WebViewResolver( }; """.trimIndent() ) - append(scriptBody) } + html.body().insertChildren(0, script) return WebResourceResponse( - "application/javascript", + "text/html", "utf-8", 200, "ok", mapOf("server" to "cloudflare"), - ByteArrayInputStream(newBody.toByteArray()), + ByteArrayInputStream(html.outerHtml().toByteArray()), ) } } diff --git a/src/all/hikari/build.gradle b/src/all/hikari/build.gradle index 471f5f7c..f0a2ec0f 100644 --- a/src/all/hikari/build.gradle +++ b/src/all/hikari/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Hikari' extClass = '.Hikari' - extVersionCode = 19 + extVersionCode = 20 } apply from: "$rootDir/common.gradle" diff --git a/src/en/tokuzilla/build.gradle b/src/en/tokuzilla/build.gradle index af309649..e736c299 100644 --- a/src/en/tokuzilla/build.gradle +++ b/src/en/tokuzilla/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Tokuzilla' extClass = '.Tokuzilla' - extVersionCode = 22 + extVersionCode = 23 } apply from: "$rootDir/common.gradle" diff --git a/src/hi/animesaga/build.gradle b/src/hi/animesaga/build.gradle index e5c5c863..056f7482 100644 --- a/src/hi/animesaga/build.gradle +++ b/src/hi/animesaga/build.gradle @@ -3,7 +3,7 @@ ext { extClass = '.AniSAGA' themePkg = 'dooplay' baseUrl = 'https://www.anisaga.org' - overrideVersionCode = 18 + overrideVersionCode = 19 isNsfw = false }