refactor: Make extensions use the vudeo-extractor lib (#2173)
This commit is contained in:
@ -103,7 +103,9 @@ class AnimeWorldIndia(
|
||||
?: return SAnime.UNKNOWN
|
||||
if (epParts.first().trim().compareTo(epParts[1].trim()) == 0) {
|
||||
SAnime.COMPLETED
|
||||
} else SAnime.ONGOING
|
||||
} else {
|
||||
SAnime.ONGOING
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ ext {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-vudeo-extractor'))
|
||||
implementation(project(':lib-mixdrop-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import android.content.SharedPreferences
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.MultiSelectListPreference
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.animeextension.de.hdfilme.extractors.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
import eu.kanade.tachiyomi.animesource.model.SAnime
|
||||
@ -14,6 +13,7 @@ import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
||||
import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
|
||||
import eu.kanade.tachiyomi.lib.mixdropextractor.MixDropExtractor
|
||||
import eu.kanade.tachiyomi.lib.vudeoextractor.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.OkHttpClient
|
||||
|
@ -1,21 +0,0 @@
|
||||
package eu.kanade.tachiyomi.animeextension.de.hdfilme.extractors
|
||||
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class VudeoExtractor(private val client: OkHttpClient) {
|
||||
fun videosFromUrl(url: String): List<Video> {
|
||||
val document = client.newCall(GET(url)).execute().asJsoup()
|
||||
val videoList = mutableListOf<Video>()
|
||||
document.select("script:containsData(sources: [)").forEach { script ->
|
||||
val videoUrl = script.data().substringAfter("sources: [").substringBefore("]").replace("\"", "").split(",")
|
||||
videoUrl.forEach {
|
||||
videoList.add(Video(it, "Vudeo", it, headers = Headers.headersOf("referer", "https://vudeo.net/")))
|
||||
}
|
||||
}
|
||||
return videoList
|
||||
}
|
||||
}
|
@ -187,7 +187,9 @@ class KickAssAnime : ConfigurableAnimeSource, AnimeHttpSource() {
|
||||
it.titlecase(
|
||||
Locale.ROOT,
|
||||
)
|
||||
} else it.toString()
|
||||
} else {
|
||||
it.toString()
|
||||
}
|
||||
}}\n",
|
||||
)
|
||||
append("Year: ${anime.year}")
|
||||
|
@ -10,6 +10,7 @@ ext {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-vudeo-extractor'))
|
||||
implementation(project(':lib-uqload-extractor'))
|
||||
implementation(project(':lib-streamwish-extractor'))
|
||||
implementation(project(':lib-filemoon-extractor'))
|
||||
|
@ -4,7 +4,6 @@ import android.util.Base64
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors.StreamHideExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilter
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
import eu.kanade.tachiyomi.animesource.model.SAnime
|
||||
@ -17,6 +16,7 @@ import eu.kanade.tachiyomi.lib.streamlareextractor.StreamlareExtractor
|
||||
import eu.kanade.tachiyomi.lib.streamwishextractor.StreamWishExtractor
|
||||
import eu.kanade.tachiyomi.lib.uqloadextractor.UqloadExtractor
|
||||
import eu.kanade.tachiyomi.lib.voeextractor.VoeExtractor
|
||||
import eu.kanade.tachiyomi.lib.vudeoextractor.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.lib.youruploadextractor.YourUploadExtractor
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
|
@ -1,20 +0,0 @@
|
||||
package eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class VudeoExtractor(private val client: OkHttpClient) {
|
||||
fun videosFromUrl(url: String): List<Video> {
|
||||
val document = client.newCall(GET(url)).execute().asJsoup()
|
||||
val videoList = mutableListOf<Video>()
|
||||
document.select("script:containsData(sources: [)").forEach { script ->
|
||||
val videoUrl = script.data().substringAfter("sources: [").substringBefore("]").replace("\"", "").split(",")
|
||||
videoUrl.forEach {
|
||||
videoList.add(Video(it, "Vudeo", it, headers = Headers.headersOf("referer", "https://vudeo.net/")))
|
||||
}
|
||||
}
|
||||
return videoList
|
||||
}
|
||||
}
|
@ -10,6 +10,7 @@ ext {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-vudeo-extractor'))
|
||||
implementation(project(':lib-uqload-extractor'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
implementation(project(':lib-okru-extractor'))
|
||||
|
@ -8,7 +8,6 @@ import eu.kanade.tachiyomi.animeextension.fr.frenchanime.extractors.StreamHideEx
|
||||
import eu.kanade.tachiyomi.animeextension.fr.frenchanime.extractors.StreamVidExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.fr.frenchanime.extractors.UpstreamExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.fr.frenchanime.extractors.VidoExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.fr.frenchanime.extractors.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilter
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
@ -20,6 +19,7 @@ import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
|
||||
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
||||
import eu.kanade.tachiyomi.lib.sibnetextractor.SibnetExtractor
|
||||
import eu.kanade.tachiyomi.lib.uqloadextractor.UqloadExtractor
|
||||
import eu.kanade.tachiyomi.lib.vudeoextractor.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||
|
@ -1,21 +0,0 @@
|
||||
package eu.kanade.tachiyomi.animeextension.fr.frenchanime.extractors
|
||||
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class VudeoExtractor(private val client: OkHttpClient) {
|
||||
fun videosFromUrl(url: String): List<Video> {
|
||||
val document = client.newCall(GET(url)).execute().asJsoup()
|
||||
val videoList = mutableListOf<Video>()
|
||||
document.select("script:containsData(sources: [)").forEach { script ->
|
||||
val videoUrl = script.data().substringAfter("sources: [").substringBefore("]").replace("\"", "").split(",")
|
||||
videoUrl.forEach {
|
||||
videoList.add(Video(it, "Vudeo", it, headers = Headers.headersOf("referer", "https://vudeo.net/")))
|
||||
}
|
||||
}
|
||||
return videoList
|
||||
}
|
||||
}
|
@ -10,6 +10,7 @@ ext {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-vudeo-extractor'))
|
||||
implementation(project(':lib-dood-extractor'))
|
||||
implementation(project(':lib-mytv-extractor'))
|
||||
implementation(project(':lib-okru-extractor'))
|
||||
|
@ -4,7 +4,6 @@ import android.app.Application
|
||||
import android.content.SharedPreferences
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.PreferenceScreen
|
||||
import eu.kanade.tachiyomi.animeextension.fr.vostfree.extractors.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilter
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
@ -16,6 +15,7 @@ import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
||||
import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
|
||||
import eu.kanade.tachiyomi.lib.mytvextractor.MytvExtractor
|
||||
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
||||
import eu.kanade.tachiyomi.lib.vudeoextractor.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
@ -102,13 +102,10 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
||||
allPlayerIds.select("div").forEach {
|
||||
val server = it.text()
|
||||
if (server.lowercase() == "vudeo") {
|
||||
val headers = headers.newBuilder()
|
||||
.set("referer", "https://vudeo.io/")
|
||||
.build()
|
||||
val playerId = it.attr("id")
|
||||
val url = document.select("div#player-tabs div.tab-blocks div.tab-content div div#content_$playerId").text()
|
||||
try {
|
||||
val video = VudeoExtractor(client).videosFromUrl(url, headers)
|
||||
val video = VudeoExtractor(client).videosFromUrl(url)
|
||||
videoList.addAll(video)
|
||||
} catch (e: Exception) {}
|
||||
}
|
||||
|
@ -1,21 +0,0 @@
|
||||
package eu.kanade.tachiyomi.animeextension.fr.vostfree.extractors
|
||||
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class VudeoExtractor(private val client: OkHttpClient) {
|
||||
fun videosFromUrl(url: String, headers: Headers): List<Video> {
|
||||
val document = client.newCall(GET(url)).execute().asJsoup()
|
||||
val videoList = mutableListOf<Video>()
|
||||
document.select("script:containsData(sources: [)").forEach { script ->
|
||||
val videoUrl = script.data().substringAfter("sources: [").substringBefore("]").replace("\"", "").split(",")
|
||||
videoUrl.forEach {
|
||||
videoList.add(Video(it, "Vudeo", it, headers))
|
||||
}
|
||||
}
|
||||
return videoList
|
||||
}
|
||||
}
|
@ -148,7 +148,9 @@ class NimeGami : ParsedAnimeHttpSource() {
|
||||
if (url.contains("bunga.nimegami")) {
|
||||
if (usedBunga) {
|
||||
return@mapNotNull null
|
||||
} else usedBunga = true
|
||||
} else {
|
||||
usedBunga = true
|
||||
}
|
||||
}
|
||||
runCatching {
|
||||
extractVideos(url, quality, episodeIndex)
|
||||
|
@ -5,6 +5,7 @@ plugins {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(':lib-vudeo-extractor'))
|
||||
implementation(project(':lib-uqload-extractor'))
|
||||
implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1"
|
||||
implementation(project(":lib-cryptoaes"))
|
||||
|
@ -13,7 +13,6 @@ import eu.kanade.tachiyomi.animeextension.tr.turkanime.extractors.MVidooExtracto
|
||||
import eu.kanade.tachiyomi.animeextension.tr.turkanime.extractors.MailRuExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.tr.turkanime.extractors.StreamVidExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.tr.turkanime.extractors.VTubeExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.tr.turkanime.extractors.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.animeextension.tr.turkanime.extractors.WolfstreamExtractor
|
||||
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
|
||||
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
|
||||
@ -35,6 +34,7 @@ import eu.kanade.tachiyomi.lib.synchrony.Deobfuscator
|
||||
import eu.kanade.tachiyomi.lib.uqloadextractor.UqloadExtractor
|
||||
import eu.kanade.tachiyomi.lib.vkextractor.VkExtractor
|
||||
import eu.kanade.tachiyomi.lib.voeextractor.VoeExtractor
|
||||
import eu.kanade.tachiyomi.lib.vudeoextractor.VudeoExtractor
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.POST
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
|
@ -1,21 +0,0 @@
|
||||
package eu.kanade.tachiyomi.animeextension.tr.turkanime.extractors
|
||||
|
||||
import eu.kanade.tachiyomi.animesource.model.Video
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import okhttp3.Headers
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class VudeoExtractor(private val client: OkHttpClient) {
|
||||
fun videosFromUrl(url: String, prefix: String = ""): List<Video> {
|
||||
val document = client.newCall(GET(url)).execute().asJsoup()
|
||||
val videoList = mutableListOf<Video>()
|
||||
document.select("script:containsData(sources: [)").forEach { script ->
|
||||
val videoUrl = script.data().substringAfter("sources: [").substringBefore("]").replace("\"", "").split(",")
|
||||
videoUrl.forEach {
|
||||
videoList.add(Video(it, "${prefix}Vudeo", it, headers = Headers.headersOf("referer", "https://vudeo.net/")))
|
||||
}
|
||||
}
|
||||
return videoList
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user