From 8ffca9ddcc41eadc8fa738a20120ae7d7c69b51d Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Thu, 20 Oct 2022 16:06:46 -0300 Subject: [PATCH] Convert VoeExtractor to shared lib (#955) --- lib/voe-extractor/build.gradle.kts | 25 +++++++++++++++++++ .../src/main/AndroidManifest.xml | 2 ++ .../lib/voeextractor/VoeExtractor.kt | 21 ++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 lib/voe-extractor/build.gradle.kts create mode 100644 lib/voe-extractor/src/main/AndroidManifest.xml create mode 100644 lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt diff --git a/lib/voe-extractor/build.gradle.kts b/lib/voe-extractor/build.gradle.kts new file mode 100644 index 000000000..114a95458 --- /dev/null +++ b/lib/voe-extractor/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + id("com.android.library") + kotlin("android") +} + +android { + compileSdk = AndroidConfig.compileSdk + + defaultConfig { + minSdk = AndroidConfig.minSdk + targetSdk = AndroidConfig.targetSdk + } +} + +repositories { + mavenCentral() +} + +dependencies { + compileOnly(libs.kotlin.stdlib) + compileOnly(libs.okhttp) + compileOnly(libs.aniyomi.lib) + compileOnly(libs.jsoup) +} +// BUMPS: 0 \ No newline at end of file diff --git a/lib/voe-extractor/src/main/AndroidManifest.xml b/lib/voe-extractor/src/main/AndroidManifest.xml new file mode 100644 index 000000000..b27fc4f4b --- /dev/null +++ b/lib/voe-extractor/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt b/lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt new file mode 100644 index 000000000..9dc41953a --- /dev/null +++ b/lib/voe-extractor/src/main/java/eu/kanade/tachiyomi/lib/voeextractor/VoeExtractor.kt @@ -0,0 +1,21 @@ +package eu.kanade.tachiyomi.lib.voeextractor + +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.OkHttpClient + +class VoeExtractor(private val client: OkHttpClient) { + + fun videoFromUrl(url: String, quality: String? = null): Video? { + val document = client.newCall(GET(url)).execute().asJsoup() + val script = document.selectFirst("script:containsData(const sources)") + ?.data() + ?: return null + val videoUrl = script.substringAfter("hls\": \"").substringBefore("\"") + val resolution = script.substringAfter("video_height\": ") + .substringBefore(",") + val qualityStr = quality ?: "VoeCDN(${resolution}p)" + return Video(url, qualityStr, videoUrl) + } +}