feat(lib): Convert VudeoExtractor to a shared lib (#2168)
This commit is contained in:
parent
79886e1b0b
commit
4596194da4
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)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user