feat(lib): Convert VudeoExtractor to a shared lib (#2168)
This commit is contained in:
17
lib/vudeo-extractor/build.gradle.kts
Normal file
17
lib/vudeo-extractor/build.gradle.kts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
plugins {
|
||||||
|
id("com.android.library")
|
||||||
|
kotlin("android")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdk = AndroidConfig.compileSdk
|
||||||
|
namespace = "eu.kanade.tachiyomi.lib.vudeoextractor"
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdk = AndroidConfig.minSdk
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compileOnly(libs.bundles.common)
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package eu.kanade.tachiyomi.lib.vudeoextractor
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
|
import eu.kanade.tachiyomi.network.GET
|
||||||
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
|
import okhttp3.Headers
|
||||||
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
|
import okhttp3.OkHttpClient
|
||||||
|
|
||||||
|
class VudeoExtractor(private val client: OkHttpClient) {
|
||||||
|
fun videosFromUrl(url: String, prefix: String = ""): List<Video> {
|
||||||
|
val doc = client.newCall(GET(url)).execute()
|
||||||
|
.use { it.asJsoup() }
|
||||||
|
|
||||||
|
val sources = doc.selectFirst("script:containsData(sources: [)")?.data()
|
||||||
|
?: return emptyList()
|
||||||
|
|
||||||
|
val referer = "https://" + url.toHttpUrl().host + "/"
|
||||||
|
|
||||||
|
val headers = Headers.headersOf("referer", referer)
|
||||||
|
|
||||||
|
return sources.substringAfter("sources: [").substringBefore("]")
|
||||||
|
.replace("\"", "")
|
||||||
|
.split(',')
|
||||||
|
.filter { it.startsWith("https") } // remove invalid links
|
||||||
|
.map { videoUrl ->
|
||||||
|
Video(videoUrl, "${prefix}Vudeo", videoUrl, headers)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user