mirror of
https://github.com/Dark25/aniyomi-extensions.git
synced 2024-10-28 08:09:37 +01:00
fix(lib/dood-extractor)
This commit is contained in:
parent
180cb35d55
commit
f657b3df3a
68 changed files with 115 additions and 100 deletions
|
@ -8,45 +8,61 @@ import okhttp3.OkHttpClient
|
|||
|
||||
class DoodExtractor(private val client: OkHttpClient) {
|
||||
|
||||
fun videoFromUrl(
|
||||
url: String,
|
||||
quality: String? = null,
|
||||
redirect: Boolean = true,
|
||||
externalSubs: List<Track> = emptyList(),
|
||||
): Video? {
|
||||
val newQuality = quality ?: ("Doodstream" + if (redirect) " mirror" else "")
|
||||
|
||||
fun videoFromUrl(url: String, quality: String? = null, externalSubs: List<Track> = emptyList(),): Video? {
|
||||
return runCatching {
|
||||
val response = client.newCall(GET(url)).execute()
|
||||
val newUrl = if (redirect) response.request.url.toString() else url
|
||||
val urlRegex = Regex("https://(.*?)/[de]/([0-9a-zA-Z]+)").find(url)!!
|
||||
var updatedHost = urlRegex.groupValues[1].let {
|
||||
if (it.endsWith(".cx") || it.endsWith(".wf")) {
|
||||
"dood.so"
|
||||
} else {
|
||||
it
|
||||
}
|
||||
}
|
||||
val mediaId = urlRegex.groupValues[2]
|
||||
var webUrl = getUrl(updatedHost, mediaId)
|
||||
val headers = doodHeaders(updatedHost)
|
||||
val response = client.newCall(GET(webUrl, headers)).execute()
|
||||
if (response.request.url.toString() != webUrl) {
|
||||
updatedHost = Regex("(?://|\\.)([^/]+)").find(response.request.url.toString())?.groupValues?.get(1) ?: updatedHost
|
||||
webUrl = getUrl(updatedHost, mediaId)
|
||||
}
|
||||
val updatedHeaders = headers.newBuilder().set("referer", webUrl).build()
|
||||
val iframeMatch = Regex("""<iframe\s*src="([^"]+)""").find(response.body.string())
|
||||
webUrl = if (iframeMatch != null) {
|
||||
getUrl(updatedHost, iframeMatch.groupValues[1])
|
||||
} else {
|
||||
webUrl.replace("/d/", "/e/")
|
||||
}
|
||||
val html = client.newCall(GET(webUrl, updatedHeaders)).execute().body.string()
|
||||
val subMatches = Regex("""dsplayer\.addRemoteTextTrack\(\{src:'([^']+)',\s*label:'([^']*)',kind:'captions'""").findAll(html)
|
||||
val subTitles = mutableListOf<Track>()
|
||||
subMatches.forEach {
|
||||
val src = it.groupValues[1]
|
||||
if (it.groupValues[1].length > 1) {
|
||||
subTitles.add(Track(it.groupValues[1], if (src.startsWith("//")) "https:$src" else src))
|
||||
}
|
||||
}
|
||||
|
||||
val doodHost = Regex("https://(.*?)/").find(newUrl)!!.groupValues[1]
|
||||
val content = response.body.string()
|
||||
if (!content.contains("'/pass_md5/")) return null
|
||||
val md5 = content.substringAfter("'/pass_md5/").substringBefore("',")
|
||||
val token = md5.substringAfterLast("/")
|
||||
val randomString = getRandomString()
|
||||
val expiry = System.currentTimeMillis()
|
||||
val videoUrlStart = client.newCall(
|
||||
GET(
|
||||
"https://$doodHost/pass_md5/$md5",
|
||||
Headers.headersOf("referer", newUrl),
|
||||
),
|
||||
).execute().body.string()
|
||||
val videoUrl = "$videoUrlStart$randomString?token=$token&expiry=$expiry"
|
||||
Video(newUrl, newQuality, videoUrl, headers = doodHeaders(doodHost), subtitleTracks = externalSubs)
|
||||
val tokenMatch = Regex("""dsplayer\.hotkeys[^']+'([^']+).+?function\s*makePlay.+?return[^?]+([^"]+)""", RegexOption.DOT_MATCHES_ALL).find(html)
|
||||
val token = tokenMatch!!.groupValues[2]
|
||||
val videoUrl = "https://${updatedHost}${tokenMatch.groupValues[1]}"
|
||||
val videoHtml = client.newCall(GET(videoUrl, updatedHeaders)).execute().body.string()
|
||||
val vidSrc = if (videoHtml.contains("cloudflarestorage.")) {
|
||||
videoHtml.trim()
|
||||
} else {
|
||||
videoHtml + getRandomString() + token + (System.currentTimeMillis() / 1000).toString()
|
||||
}
|
||||
Video(vidSrc, "Dood${ if (quality != null) ": $quality" else "" }", vidSrc, headers = updatedHeaders, subtitleTracks = externalSubs.ifEmpty { subTitles })
|
||||
}.getOrNull()
|
||||
}
|
||||
|
||||
fun videosFromUrl(
|
||||
url: String,
|
||||
quality: String? = null,
|
||||
redirect: Boolean = true,
|
||||
): List<Video> {
|
||||
val video = videoFromUrl(url, quality, redirect)
|
||||
return video?.let(::listOf) ?: emptyList<Video>()
|
||||
fun videosFromUrl(url: String, quality: String? = null): List<Video> {
|
||||
val video = videoFromUrl(url, quality)
|
||||
return video?.let(::listOf) ?: emptyList()
|
||||
}
|
||||
|
||||
private fun getUrl(host: String, mediaId: String) = "https://$host/d/$mediaId"
|
||||
|
||||
private fun getRandomString(length: Int = 10): String {
|
||||
val allowedChars = ('A'..'Z') + ('a'..'z') + ('0'..'9')
|
||||
return (1..length)
|
||||
|
|
|
@ -3,7 +3,7 @@ ext {
|
|||
extClass = '.AnimeXin'
|
||||
themePkg = 'animestream'
|
||||
baseUrl = 'https://animexin.vip'
|
||||
overrideVersionCode = 8
|
||||
overrideVersionCode = 9
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Jav Guru'
|
||||
extClass = '.JavGuru'
|
||||
extVersionCode = 15
|
||||
extVersionCode = 16
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Anime4up'
|
||||
extClass = '.Anime4Up'
|
||||
extVersionCode = 57
|
||||
extVersionCode = 58
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AnimeLek'
|
||||
extClass = '.AnimeLek'
|
||||
extVersionCode = 30
|
||||
extVersionCode = 31
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Animerco'
|
||||
extClass = '.Animerco'
|
||||
extVersionCode = 37
|
||||
extVersionCode = 38
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'asia2tv'
|
||||
extClass = '.Asia2TV'
|
||||
extVersionCode = 18
|
||||
extVersionCode = 19
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Egy Dead'
|
||||
extClass = '.EgyDead'
|
||||
extVersionCode = 12
|
||||
extVersionCode = 13
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'MY CIMA'
|
||||
extClass = '.MyCima'
|
||||
extVersionCode = 22
|
||||
extVersionCode = 23
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Tuktuk Cinema'
|
||||
extClass = '.Tuktukcinema'
|
||||
extVersionCode = 22
|
||||
extVersionCode = 23
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'WIT ANIME'
|
||||
extClass = '.WitAnime'
|
||||
extVersionCode = 49
|
||||
extVersionCode = 50
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Anime-Loads'
|
||||
extClass = '.AnimeLoads'
|
||||
extVersionCode = 15
|
||||
extVersionCode = 16
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AnimeToast'
|
||||
extClass = '.AnimeToast'
|
||||
extVersionCode = 14
|
||||
extVersionCode = 15
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -166,7 +166,6 @@ class AnimeToast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
DoodExtractor(client).videoFromUrl(
|
||||
link,
|
||||
quality,
|
||||
false,
|
||||
)
|
||||
if (video != null) {
|
||||
videoList.add(video)
|
||||
|
@ -224,7 +223,7 @@ class AnimeToast : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
) == true -> {
|
||||
val quality = "DoodStream"
|
||||
val video =
|
||||
DoodExtractor(client).videoFromUrl(link, quality, false)
|
||||
DoodExtractor(client).videoFromUrl(link, quality)
|
||||
if (video != null) {
|
||||
videoList.add(video)
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AniWorld'
|
||||
extClass = '.AniWorld'
|
||||
extVersionCode = 23
|
||||
extVersionCode = 24
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'CineClix'
|
||||
extClass = '.CineClix'
|
||||
extVersionCode = 14
|
||||
extVersionCode = 15
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -3,7 +3,7 @@ ext {
|
|||
extClass = '.Cinemathek'
|
||||
themePkg = 'dooplay'
|
||||
baseUrl = 'https://cinemathek.net'
|
||||
overrideVersionCode = 20
|
||||
overrideVersionCode = 21
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ ext {
|
|||
extClass = '.Kinoking'
|
||||
themePkg = 'dooplay'
|
||||
baseUrl = 'https://kinoking.cc'
|
||||
overrideVersionCode = 21
|
||||
overrideVersionCode = 22
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Movie2k'
|
||||
extClass = '.Movie2k'
|
||||
extVersionCode = 6
|
||||
extVersionCode = 7
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Serienstream'
|
||||
extClass = '.Serienstream'
|
||||
extVersionCode = 18
|
||||
extVersionCode = 19
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'StreamCloud'
|
||||
extClass = '.StreamCloud'
|
||||
extVersionCode = 8
|
||||
extVersionCode = 9
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AllAnime'
|
||||
extClass = '.AllAnime'
|
||||
extVersionCode = 31
|
||||
extVersionCode = 32
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Animension'
|
||||
extClass = '.Animension'
|
||||
extVersionCode = 20
|
||||
extVersionCode = 21
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AsiaFlix'
|
||||
extClass = '.AsiaFlix'
|
||||
extVersionCode = 10
|
||||
extVersionCode = 11
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AsianLoad'
|
||||
extClass = '.AsianLoad'
|
||||
extVersionCode = 39
|
||||
extVersionCode = 40
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'DramaCool'
|
||||
extClass = '.DramaCool'
|
||||
extVersionCode = 48
|
||||
extVersionCode = 49
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'GenoAnime'
|
||||
extClass = '.GenoAnime'
|
||||
extVersionCode = 33
|
||||
extVersionCode = 34
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Gogoanime'
|
||||
extClass = '.GogoAnime'
|
||||
extVersionCode = 83
|
||||
extVersionCode = 84
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -3,7 +3,7 @@ ext {
|
|||
extClass = '.Multimovies'
|
||||
themePkg = 'dooplay'
|
||||
baseUrl = 'https://multimovies.art'
|
||||
overrideVersionCode = 17
|
||||
overrideVersionCode = 18
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -764,7 +764,7 @@ class AutoEmbedExtractor(private val client: OkHttpClient) {
|
|||
RabbitStreamExtractor(client).videosFromUrl(videoUrl, headers = videoHeaders, prefix = prefix)
|
||||
}
|
||||
videoUrl.contains("https://dood") -> {
|
||||
DoodExtractor(client).videoFromUrl(videoUrl, server.name, false)
|
||||
DoodExtractor(client).videoFromUrl(videoUrl, server.name)
|
||||
?.let(::listOf)
|
||||
}
|
||||
else -> null
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Animefenix'
|
||||
extClass = '.Animefenix'
|
||||
extVersionCode = 39
|
||||
extVersionCode = 40
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AnimeLatinoHD'
|
||||
extClass = '.AnimeLatinoHD'
|
||||
extVersionCode = 32
|
||||
extVersionCode = 33
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AnimeMovil'
|
||||
extClass = '.AnimeMovil'
|
||||
extVersionCode = 14
|
||||
extVersionCode = 15
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -253,7 +253,7 @@ class AnimeMovil : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
StreamWishExtractor(client, docHeaders).videosFromUrl(url, videoNameGen = { "StreamWish:$it" }).also(videoList::addAll)
|
||||
}
|
||||
if (embedUrl.contains("doodstream") || embedUrl.contains("dood.")) {
|
||||
DoodExtractor(client).videoFromUrl(url, "DoodStream", false)?.let { videoList.add(it) }
|
||||
DoodExtractor(client).videoFromUrl(url, "DoodStream")?.let { videoList.add(it) }
|
||||
}
|
||||
if (embedUrl.contains("streamlare")) {
|
||||
StreamlareExtractor(client).videosFromUrl(url).also(videoList::addAll)
|
||||
|
|
|
@ -3,7 +3,7 @@ ext {
|
|||
extClass = '.AnimeOnlineNinja'
|
||||
themePkg = 'dooplay'
|
||||
baseUrl = 'https://ww3.animeonline.ninja'
|
||||
overrideVersionCode = 39
|
||||
overrideVersionCode = 40
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AsiaLiveAction'
|
||||
extClass = '.AsiaLiveAction'
|
||||
extVersionCode = 30
|
||||
extVersionCode = 31
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -203,7 +203,7 @@ class AsiaLiveAction : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
if (embedUrl.contains("doodstream") || embedUrl.contains("dood.")) {
|
||||
val url2 = url.replace("https://doodstream.com/e/", "https://dood.to/e/")
|
||||
DoodExtractor(client).videoFromUrl(url2, "DoodStream", false)?.let { videoList.add(it) }
|
||||
DoodExtractor(client).videoFromUrl(url2, "DoodStream")?.let { videoList.add(it) }
|
||||
}
|
||||
if (embedUrl.contains("streamlare")) {
|
||||
StreamlareExtractor(client).videosFromUrl(url).let { videoList.addAll(it) }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Cuevana'
|
||||
extClass = '.CuevanaFactory'
|
||||
extVersionCode = 32
|
||||
extVersionCode = 33
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -203,7 +203,7 @@ class CuevanaCh(override val name: String, override val baseUrl: String) : Confi
|
|||
}
|
||||
if (embedUrl.contains("doodstream") || embedUrl.contains("dood.")) {
|
||||
val url2 = url.replace("https://doodstream.com/e/", "https://dood.to/e/")
|
||||
DoodExtractor(client).videoFromUrl(url2, "$prefix DoodStream", false)?.let { videoList.add(it) }
|
||||
DoodExtractor(client).videoFromUrl(url2, "$prefix DoodStream")?.let { videoList.add(it) }
|
||||
}
|
||||
if (embedUrl.contains("streamlare")) {
|
||||
StreamlareExtractor(client).videosFromUrl(url, prefix = prefix).let { videoList.addAll(it) }
|
||||
|
|
|
@ -212,7 +212,7 @@ class CuevanaEu(override val name: String, override val baseUrl: String) : Confi
|
|||
videoList.addAll(videos)
|
||||
}
|
||||
if (embedUrl.contains("doodstream") || embedUrl.contains("dood.")) {
|
||||
DoodExtractor(client).videoFromUrl(url, "$prefix DoodStream", false)
|
||||
DoodExtractor(client).videoFromUrl(url, "$prefix DoodStream")
|
||||
?.let { videoList.add(it) }
|
||||
}
|
||||
if (embedUrl.contains("okru") || embedUrl.contains("ok.ru")) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Doramasflix'
|
||||
extClass = '.Doramasflix'
|
||||
extVersionCode = 21
|
||||
extVersionCode = 22
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'EnNovelas'
|
||||
extClass = '.EnNovelas'
|
||||
extVersionCode = 11
|
||||
extVersionCode = 12
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'FanPelis'
|
||||
extClass = '.FanPelis'
|
||||
extVersionCode = 12
|
||||
extVersionCode = 13
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -116,7 +116,7 @@ class FanPelis : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
if (embedUrl.contains("doodstream") || embedUrl.contains("dood")) {
|
||||
val video = try {
|
||||
DoodExtractor(client).videoFromUrl(url, "DoodStream", true)
|
||||
DoodExtractor(client).videoFromUrl(url, "DoodStream")
|
||||
} catch (e: Exception) {
|
||||
null
|
||||
}
|
||||
|
|
|
@ -182,7 +182,7 @@ class Gnula : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
}
|
||||
embedUrl.contains("doodstream") || embedUrl.contains("dood.") || embedUrl.contains("ds2play") || embedUrl.contains("doods.") -> {
|
||||
val url2 = url.replace("https://doodstream.com/e/", "https://dood.to/e/")
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "$prefix DoodStream", false)!!)
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "$prefix DoodStream")!!)
|
||||
}
|
||||
embedUrl.contains("streamlare") -> StreamlareExtractor(client).videosFromUrl(url, prefix = prefix)
|
||||
embedUrl.contains("yourupload") || embedUrl.contains("upload") -> YourUploadExtractor(client).videoFromUrl(url, headers = headers, prefix = prefix)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Hackstore'
|
||||
extClass = '.Hackstore'
|
||||
extVersionCode = 10
|
||||
extVersionCode = 11
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'HentaiTk'
|
||||
extClass = '.Hentaitk'
|
||||
extVersionCode = 1
|
||||
extVersionCode = 2
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Latanime'
|
||||
extClass = '.Latanime'
|
||||
extVersionCode = 17
|
||||
extVersionCode = 18
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'LegionAnime'
|
||||
extClass = '.LegionAnime'
|
||||
extVersionCode = 31
|
||||
extVersionCode = 32
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'LocoPelis'
|
||||
extClass = '.LocoPelis'
|
||||
extVersionCode = 23
|
||||
extVersionCode = 24
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Pelisflix'
|
||||
extClass = '.PelisflixFactory'
|
||||
extVersionCode = 14
|
||||
extVersionCode = 15
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'PelisForte'
|
||||
extClass = '.PelisForte'
|
||||
extVersionCode = 15
|
||||
extVersionCode = 16
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -203,7 +203,7 @@ open class PelisForte : ConfigurableAnimeSource, AnimeHttpSource() {
|
|||
StreamWishExtractor(client, docHeaders).videosFromUrl(url, videoNameGen = { "${prefix}StreamWish:$it" }).also(videoList::addAll)
|
||||
}
|
||||
if (embedUrl.contains("doodstream") || embedUrl.contains("dood.")) {
|
||||
DoodExtractor(client).videoFromUrl(url, "${prefix}DoodStream", false)?.let { videoList.add(it) }
|
||||
DoodExtractor(client).videoFromUrl(url, "${prefix}DoodStream")?.let { videoList.add(it) }
|
||||
}
|
||||
if (embedUrl.contains("streamlare")) {
|
||||
StreamlareExtractor(client).videosFromUrl(url, prefix = prefix).let { videoList.addAll(it) }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Pelisplushd'
|
||||
extClass = '.PelisplushdFactory'
|
||||
extVersionCode = 53
|
||||
extVersionCode = 54
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -201,7 +201,7 @@ open class Pelisplushd(override val name: String, override val baseUrl: String)
|
|||
}
|
||||
embedUrl.contains("doodstream") || embedUrl.contains("dood.") || embedUrl.contains("ds2play") || embedUrl.contains("doods.") -> {
|
||||
val url2 = url.replace("https://doodstream.com/e/", "https://dood.to/e/")
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "DoodStream", false)!!)
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "DoodStream")!!)
|
||||
}
|
||||
embedUrl.contains("streamlare") -> StreamlareExtractor(client).videosFromUrl(url)
|
||||
embedUrl.contains("yourupload") || embedUrl.contains("upload") -> YourUploadExtractor(client).videoFromUrl(url, headers = headers)
|
||||
|
|
|
@ -165,7 +165,7 @@ class Pelisplusph(override val name: String, override val baseUrl: String) : Pel
|
|||
}
|
||||
embedUrl.contains("doodstream") || embedUrl.contains("dood.") || embedUrl.contains("ds2play") || embedUrl.contains("doods.") -> {
|
||||
val url2 = url.replace("https://doodstream.com/e/", "https://dood.to/e/")
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "$prefix DoodStream", false)!!)
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "$prefix DoodStream")!!)
|
||||
}
|
||||
embedUrl.contains("streamlare") -> StreamlareExtractor(client).videosFromUrl(url, prefix = prefix)
|
||||
embedUrl.contains("yourupload") || embedUrl.contains("upload") -> YourUploadExtractor(client).videoFromUrl(url, headers = headers, prefix = prefix)
|
||||
|
|
|
@ -208,7 +208,7 @@ class Pelisplusto(override val name: String, override val baseUrl: String) : Pel
|
|||
}
|
||||
embedUrl.contains("doodstream") || embedUrl.contains("dood.") || embedUrl.contains("ds2play") || embedUrl.contains("doods.") -> {
|
||||
val url2 = url.replace("https://doodstream.com/e/", "https://dood.to/e/")
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "DoodStream", false)!!)
|
||||
listOf(DoodExtractor(client).videoFromUrl(url2, "DoodStream")!!)
|
||||
}
|
||||
embedUrl.contains("streamlare") -> StreamlareExtractor(client).videosFromUrl(url)
|
||||
embedUrl.contains("yourupload") || embedUrl.contains("upload") -> YourUploadExtractor(client).videoFromUrl(url, headers = headers)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AniSama'
|
||||
extClass = '.AniSama'
|
||||
extVersionCode = 6
|
||||
extVersionCode = 7
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'EmpireStreaming'
|
||||
extClass = '.EmpireStreaming'
|
||||
extVersionCode = 16
|
||||
extVersionCode = 17
|
||||
}
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ ext {
|
|||
extClass = '.FrenchAnime'
|
||||
themePkg = 'datalifeengine'
|
||||
baseUrl = 'https://french-anime.com'
|
||||
overrideVersionCode = 6
|
||||
overrideVersionCode = 7
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'OtakuFR'
|
||||
extClass = '.OtakuFR'
|
||||
extVersionCode = 12
|
||||
extVersionCode = 13
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'Vostfree'
|
||||
extClass = '.Vostfree'
|
||||
extVersionCode = 19
|
||||
extVersionCode = 20
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -114,7 +114,7 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
if (server.lowercase() == "doodstream") {
|
||||
val playerId = it.attr("id")
|
||||
val url = document.select("div#player-tabs div.tab-blocks div.tab-content div div#content_$playerId").text()
|
||||
val video = DoodExtractor(client).videoFromUrl(url, "DoodStream", false)
|
||||
val video = DoodExtractor(client).videoFromUrl(url, "DoodStream")
|
||||
if (video != null) {
|
||||
videoList.add(video)
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ ext {
|
|||
extClass = '.Wiflix'
|
||||
themePkg = 'datalifeengine'
|
||||
baseUrl = 'https://wiflix.voto'
|
||||
overrideVersionCode = 6
|
||||
overrideVersionCode = 7
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'YoMovies'
|
||||
extClass = '.YoMovies'
|
||||
extVersionCode = 13
|
||||
extVersionCode = 14
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'ANIMEWORLD.tv'
|
||||
extClass = '.ANIMEWORLD'
|
||||
extVersionCode = 39
|
||||
extVersionCode = 40
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
||||
|
|
|
@ -146,7 +146,7 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||
listOf(Video(url, "AnimeWorld Server", url))
|
||||
}
|
||||
url.contains("https://doo") -> {
|
||||
DoodExtractor(client).videoFromUrl(url, redirect = true)
|
||||
DoodExtractor(client).videoFromUrl(url)
|
||||
?.let(::listOf)
|
||||
}
|
||||
url.contains("streamtape") -> {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
ext {
|
||||
extName = 'AnimesZone'
|
||||
extClass = '.AnimesZone'
|
||||
extVersionCode = 8
|
||||
extVersionCode = 9
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue