diff --git a/lib/vidsrc-extractor/build.gradle.kts b/lib/vidsrc-extractor/build.gradle.kts new file mode 100644 index 000000000..c5d5a17a7 --- /dev/null +++ b/lib/vidsrc-extractor/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { + id("com.android.library") + kotlin("android") + id("kotlinx-serialization") +} + +android { + compileSdk = AndroidConfig.compileSdk + namespace = "eu.kanade.tachiyomi.lib.vidsrcextractor" + + defaultConfig { + minSdk = AndroidConfig.minSdk + } +} + +dependencies { + compileOnly(libs.bundles.common) + implementation(project(":lib-playlist-utils")) +} +// BUMPS: 0 diff --git a/src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/extractors/VidsrcExtractor.kt b/lib/vidsrc-extractor/src/main/java/eu/kanade/tachiyomi/lib/vidsrcextractor/VidSrcExtractor.kt similarity index 84% rename from src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/extractors/VidsrcExtractor.kt rename to lib/vidsrc-extractor/src/main/java/eu/kanade/tachiyomi/lib/vidsrcextractor/VidSrcExtractor.kt index 26e74f774..dc0422cf1 100644 --- a/src/en/fmovies/src/eu/kanade/tachiyomi/animeextension/en/fmovies/extractors/VidsrcExtractor.kt +++ b/lib/vidsrc-extractor/src/main/java/eu/kanade/tachiyomi/lib/vidsrcextractor/VidSrcExtractor.kt @@ -1,13 +1,14 @@ -package eu.kanade.tachiyomi.animeextension.en.fmovies.extractors +package eu.kanade.tachiyomi.lib.vidsrcextractor import android.util.Base64 import app.cash.quickjs.QuickJs -import eu.kanade.tachiyomi.animeextension.en.fmovies.MediaResponseBody import eu.kanade.tachiyomi.animesource.model.Track import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.parseAs +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.Serializable import okhttp3.CacheControl import okhttp3.Headers import okhttp3.HttpUrl.Companion.toHttpUrl @@ -16,6 +17,7 @@ import java.net.URLDecoder import javax.crypto.Cipher import javax.crypto.spec.SecretKeySpec +@OptIn(ExperimentalSerializationApi::class) class VidsrcExtractor(private val client: OkHttpClient, private val headers: Headers) { private val playlistUtils by lazy { PlaylistUtils(client, headers) } @@ -25,13 +27,14 @@ class VidsrcExtractor(private val client: OkHttpClient, private val headers: Hea .cache(null) .build() + private val keys by lazy { noCacheClient.newCall( GET("https://raw.githubusercontent.com/KillerDogeEmpire/vidplay-keys/keys/keys.json", cache = cacheControl), ).execute().parseAs>() } - fun videosFromUrl(embedLink: String, hosterName: String): List