mirror of
https://github.com/yuzono/anime-extensions.git
synced 2026-06-13 13:39:44 +00:00
Fix VidGuard's proguard
This commit is contained in:
@@ -2,6 +2,12 @@ plugins {
|
||||
alias(kei.plugins.library)
|
||||
}
|
||||
|
||||
android {
|
||||
defaultConfig {
|
||||
consumerProguardFiles("proguard-rules.pro")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":lib:playlistutils"))
|
||||
implementation("org.mozilla:rhino:1.7.14")
|
||||
|
||||
7
lib/vidguardextractor/proguard-rules.pro
vendored
Normal file
7
lib/vidguardextractor/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# Keep Rhino (Mozilla JavaScript engine) classes used by VidGuardExtractor
|
||||
-keep class org.mozilla.javascript.Context { *; }
|
||||
-keep class org.mozilla.javascript.NativeJSON { *; }
|
||||
-keep class org.mozilla.javascript.NativeObject { *; }
|
||||
-keep class org.mozilla.javascript.Scriptable { *; }
|
||||
-keep class org.mozilla.javascript.** { *; }
|
||||
-dontwarn org.mozilla.javascript.**
|
||||
@@ -5,30 +5,27 @@ import android.util.Log
|
||||
import aniyomi.lib.playlistutils.PlaylistUtils
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import keiyoushi.utils.parseAs
|
||||
import keiyoushi.utils.useAsJsoup
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.Json
|
||||
import okhttp3.OkHttpClient
|
||||
import org.mozilla.javascript.Context
|
||||
import org.mozilla.javascript.NativeJSON
|
||||
import org.mozilla.javascript.NativeObject
|
||||
import org.mozilla.javascript.Scriptable
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
class VidGuardExtractor(private val client: OkHttpClient) {
|
||||
|
||||
private val playlistUtils by lazy { PlaylistUtils(client) }
|
||||
|
||||
private val json: Json by injectLazy()
|
||||
|
||||
fun videosFromUrl(url: String, prefix: String) = videosFromUrl(url) { "${prefix}VidGuard:$it" }
|
||||
|
||||
fun videosFromUrl(url: String, videoNameGen: (String) -> String = { quality -> "VidGuard:$quality" }): List<Video> {
|
||||
try {
|
||||
val res = client.newCall(GET(url)).execute().asJsoup()
|
||||
val res = client.newCall(GET(url)).execute().useAsJsoup()
|
||||
val scriptData = res.selectFirst("script:containsData(eval)")?.data() ?: return emptyList()
|
||||
|
||||
val jsonStr2 = json.decodeFromString<SvgObject>(runJS2(scriptData))
|
||||
val jsonStr2 = runJS2(scriptData).parseAs<SvgObject>()
|
||||
val playlistUrl = sigDecode(jsonStr2.stream)
|
||||
|
||||
return playlistUtils.extractFromHls(playlistUrl, videoNameGen = videoNameGen)
|
||||
|
||||
Reference in New Issue
Block a user