diff --git a/lib/fireplayer-extractor/build.gradle.kts b/lib/fireplayer-extractor/build.gradle.kts new file mode 100644 index 00000000..b102264b --- /dev/null +++ b/lib/fireplayer-extractor/build.gradle.kts @@ -0,0 +1,10 @@ +plugins { + id("lib-android") +} + +dependencies { + implementation("dev.datlag.jsunpacker:jsunpacker:1.0.1") { + exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8") + } + implementation(project(":lib:playlist-utils")) +} diff --git a/src/pt/vizer/src/eu/kanade/tachiyomi/animeextension/pt/vizer/extractors/FireplayerExtractor.kt b/lib/fireplayer-extractor/src/main/java/eu/kanade/tachiyomi/lib/fireplayerextractor/FireplayerExtractor.kt similarity index 51% rename from src/pt/vizer/src/eu/kanade/tachiyomi/animeextension/pt/vizer/extractors/FireplayerExtractor.kt rename to lib/fireplayer-extractor/src/main/java/eu/kanade/tachiyomi/lib/fireplayerextractor/FireplayerExtractor.kt index 1dc111f0..f9735def 100644 --- a/src/pt/vizer/src/eu/kanade/tachiyomi/animeextension/pt/vizer/extractors/FireplayerExtractor.kt +++ b/lib/fireplayer-extractor/src/main/java/eu/kanade/tachiyomi/lib/fireplayerextractor/FireplayerExtractor.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.animeextension.pt.vizer.extractors +package eu.kanade.tachiyomi.lib.fireplayerextractor import dev.datlag.jsunpacker.JsUnpacker import eu.kanade.tachiyomi.animesource.model.Video @@ -8,31 +8,36 @@ import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.asJsoup import okhttp3.FormBody import okhttp3.Headers +import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.OkHttpClient -class FireplayerExtractor(private val client: OkHttpClient, private val host: String = "https://embedplayer.online") { - private val headers by lazy { - Headers.headersOf( - "X-Requested-With", - "XMLHttpRequest", - "Referer", - host, - "Origin", - host, - ) - } +class FireplayerExtractor( + private val client: OkHttpClient, + private val defaultHost: String? = null, +) { + fun videosFromUrl( + url: String, + videoNameGen: (String) -> String = { quality -> quality }, + videoHost: String? = null, + ): List