diff --git a/multisrc/overrides/animestream/luciferdonghua/additional.gradle b/multisrc/overrides/animestream/luciferdonghua/additional.gradle index b7719aa01..1007a3d6c 100644 --- a/multisrc/overrides/animestream/luciferdonghua/additional.gradle +++ b/multisrc/overrides/animestream/luciferdonghua/additional.gradle @@ -1,4 +1,5 @@ dependencies { implementation(project(':lib-dailymotion-extractor')) implementation(project(':lib-okru-extractor')) + implementation(project(':lib-streamwish-extractor')) } diff --git a/multisrc/overrides/animestream/luciferdonghua/src/LuciferDonghua.kt b/multisrc/overrides/animestream/luciferdonghua/src/LuciferDonghua.kt index d9b57ae40..19f5d8289 100644 --- a/multisrc/overrides/animestream/luciferdonghua/src/LuciferDonghua.kt +++ b/multisrc/overrides/animestream/luciferdonghua/src/LuciferDonghua.kt @@ -4,7 +4,11 @@ import android.util.Base64 import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.lib.dailymotionextractor.DailymotionExtractor import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor +import eu.kanade.tachiyomi.lib.streamwishextractor.StreamWishExtractor import eu.kanade.tachiyomi.multisrc.animestream.AnimeStream +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import org.jsoup.Jsoup class LuciferDonghua : AnimeStream( @@ -15,28 +19,28 @@ class LuciferDonghua : AnimeStream( // ============================ Video Links ============================= override fun getHosterUrl(encodedData: String): String { - val doc = Base64.decode(encodedData, Base64.DEFAULT) - .let(::String) // bytearray -> string - .let(Jsoup::parse) // string -> document - - val url = doc.selectFirst("iframe[src~=.]")?.attr("src") - ?: doc.selectFirst("meta[content~=.][itemprop=embedUrl]")!!.attr("content") - - return when { - url.startsWith("http") -> url - else -> "https:$url" + val doc = if (encodedData.toHttpUrlOrNull() == null) { + Base64.decode(encodedData, Base64.DEFAULT) + .let(::String) // bytearray -> string + .let(Jsoup::parse) // string -> document + } else { + client.newCall(GET(encodedData, headers)).execute().use { it.asJsoup() } } + + return doc.selectFirst("iframe[src~=.]")?.attr("abs:src") + ?: doc.selectFirst("meta[content~=.][itemprop=embedUrl]")!!.attr("abs:content") } + private val okruExtractor by lazy { OkruExtractor(client) } + private val dailymotionExtractor by lazy { DailymotionExtractor(client, headers) } + private val filelionsExtractor by lazy { StreamWishExtractor(client, headers) } + override fun getVideoList(url: String, name: String): List