fix: Purge MyTV/myvi extractor (#2592)
This commit is contained in:
parent
1bf789a91d
commit
1fd38ddddb
@ -1,17 +0,0 @@
|
|||||||
plugins {
|
|
||||||
id("com.android.library")
|
|
||||||
kotlin("android")
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
|
||||||
compileSdk = AndroidConfig.compileSdk
|
|
||||||
namespace = "eu.kanade.tachiyomi.lib.mytvextractor"
|
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
minSdk = AndroidConfig.minSdk
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compileOnly(libs.bundles.common)
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
package eu.kanade.tachiyomi.lib.mytvextractor
|
|
||||||
|
|
||||||
import okhttp3.OkHttpClient
|
|
||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
|
||||||
import eu.kanade.tachiyomi.network.GET
|
|
||||||
import java.net.URLDecoder
|
|
||||||
|
|
||||||
class MytvExtractor(private val client: OkHttpClient) {
|
|
||||||
fun videosFromUrl(url: String, prefix: String = ""): List<Video> {
|
|
||||||
val doc = client.newCall(GET(url)).execute()
|
|
||||||
.use { it.asJsoup() }
|
|
||||||
|
|
||||||
val script = doc.selectFirst("script:containsData(createPlayer), script:containsData(CreatePlayer)")
|
|
||||||
?.data()
|
|
||||||
?: return emptyList()
|
|
||||||
|
|
||||||
val videoUrl = script.substringAfter("\"v=").substringBefore("\\u0026tp=video")
|
|
||||||
.let { URLDecoder.decode(it, "utf-8") }
|
|
||||||
|
|
||||||
return if (!videoUrl.startsWith("https:")) {
|
|
||||||
val newUrl = "https:$videoUrl"
|
|
||||||
listOf(Video(newUrl, "${prefix}Stream", newUrl))
|
|
||||||
} else {
|
|
||||||
listOf(Video(videoUrl, "${prefix}Mytv", videoUrl))
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,6 +4,5 @@ dependencies {
|
|||||||
implementation(project(":lib-sibnet-extractor"))
|
implementation(project(":lib-sibnet-extractor"))
|
||||||
implementation(project(":lib-gdriveplayer-extractor"))
|
implementation(project(":lib-gdriveplayer-extractor"))
|
||||||
implementation(project(":lib-dood-extractor"))
|
implementation(project(":lib-dood-extractor"))
|
||||||
implementation(project(":lib-mytv-extractor"))
|
|
||||||
// implementation(project(":lib-dailymotion-extractor"))
|
// implementation(project(":lib-dailymotion-extractor"))
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@ import eu.kanade.tachiyomi.animesource.model.SAnime
|
|||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
|
import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
|
||||||
import eu.kanade.tachiyomi.lib.gdriveplayerextractor.GdrivePlayerExtractor
|
import eu.kanade.tachiyomi.lib.gdriveplayerextractor.GdrivePlayerExtractor
|
||||||
import eu.kanade.tachiyomi.lib.mytvextractor.MytvExtractor
|
|
||||||
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
||||||
import eu.kanade.tachiyomi.lib.sibnetextractor.SibnetExtractor
|
import eu.kanade.tachiyomi.lib.sibnetextractor.SibnetExtractor
|
||||||
import eu.kanade.tachiyomi.lib.vkextractor.VkExtractor
|
import eu.kanade.tachiyomi.lib.vkextractor.VkExtractor
|
||||||
@ -108,7 +107,6 @@ class AsyaAnimeleri : AnimeStream(
|
|||||||
private val sibnetExtractor by lazy { SibnetExtractor(client) }
|
private val sibnetExtractor by lazy { SibnetExtractor(client) }
|
||||||
private val gdrivePlayerExtractor by lazy { GdrivePlayerExtractor(client) }
|
private val gdrivePlayerExtractor by lazy { GdrivePlayerExtractor(client) }
|
||||||
private val doodExtractor by lazy { DoodExtractor(client) }
|
private val doodExtractor by lazy { DoodExtractor(client) }
|
||||||
private val mytvExtractor by lazy { MytvExtractor(client) }
|
|
||||||
// private val dailyExtractor by lazy { DailymotionExtractor(client, headers) }
|
// private val dailyExtractor by lazy { DailymotionExtractor(client, headers) }
|
||||||
|
|
||||||
override fun getVideoList(url: String, name: String): List<Video> {
|
override fun getVideoList(url: String, name: String): List<Video> {
|
||||||
@ -117,7 +115,6 @@ class AsyaAnimeleri : AnimeStream(
|
|||||||
"ok.ru" -> okruExtractor.videosFromUrl(url)
|
"ok.ru" -> okruExtractor.videosFromUrl(url)
|
||||||
"sibnet" -> sibnetExtractor.videosFromUrl(url)
|
"sibnet" -> sibnetExtractor.videosFromUrl(url)
|
||||||
// "daily" -> dailyExtractor.videosFromUrl(url)
|
// "daily" -> dailyExtractor.videosFromUrl(url)
|
||||||
"myvi", "mytv" -> mytvExtractor.videosFromUrl(url)
|
|
||||||
"dood", "doodstream" -> doodExtractor.videoFromUrl(url)?.let(::listOf) ?: emptyList()
|
"dood", "doodstream" -> doodExtractor.videoFromUrl(url)?.let(::listOf) ?: emptyList()
|
||||||
"gdrive" -> {
|
"gdrive" -> {
|
||||||
val newUrl = "https://gdriveplayer.to/embed2.php?link=$url"
|
val newUrl = "https://gdriveplayer.to/embed2.php?link=$url"
|
||||||
|
@ -18,7 +18,7 @@ class AnimeStreamGenerator : ThemeSourceGenerator {
|
|||||||
SingleLang("AnimeXin", "https://animexin.vip", "all", isNsfw = false, overrideVersionCode = 7),
|
SingleLang("AnimeXin", "https://animexin.vip", "all", isNsfw = false, overrideVersionCode = 7),
|
||||||
SingleLang("AnimeYT.es", "https://animeyt.es", "es", isNsfw = false, className = "AnimeYTES", pkgName = "animeytes"),
|
SingleLang("AnimeYT.es", "https://animeyt.es", "es", isNsfw = false, className = "AnimeYTES", pkgName = "animeytes"),
|
||||||
SingleLang("Tiodonghua.com", "https://anime.tiodonghua.com", "es", isNsfw = false, className = "Tiodonghua", pkgName = "tiodonghua"),
|
SingleLang("Tiodonghua.com", "https://anime.tiodonghua.com", "es", isNsfw = false, className = "Tiodonghua", pkgName = "tiodonghua"),
|
||||||
SingleLang("AsyaAnimeleri", "https://asyaanimeleri.com", "tr", isNsfw = false, overrideVersionCode = 1),
|
SingleLang("AsyaAnimeleri", "https://asyaanimeleri.com", "tr", isNsfw = false, overrideVersionCode = 2),
|
||||||
SingleLang("ChineseAnime", "https://chineseanime.top", "all", isNsfw = false, overrideVersionCode = 3),
|
SingleLang("ChineseAnime", "https://chineseanime.top", "all", isNsfw = false, overrideVersionCode = 3),
|
||||||
SingleLang("desu-online", "https://desu-online.pl", "pl", className = "DesuOnline", isNsfw = false, overrideVersionCode = 3),
|
SingleLang("desu-online", "https://desu-online.pl", "pl", className = "DesuOnline", isNsfw = false, overrideVersionCode = 3),
|
||||||
SingleLang("DonghuaStream", "https://donghuastream.co.in", "en", isNsfw = false, overrideVersionCode = 2),
|
SingleLang("DonghuaStream", "https://donghuastream.co.in", "en", isNsfw = false, overrideVersionCode = 2),
|
||||||
|
@ -5,14 +5,13 @@ ext {
|
|||||||
extName = 'Vostfree'
|
extName = 'Vostfree'
|
||||||
pkgNameSuffix = 'fr.vostfree'
|
pkgNameSuffix = 'fr.vostfree'
|
||||||
extClass = '.Vostfree'
|
extClass = '.Vostfree'
|
||||||
extVersionCode = 17
|
extVersionCode = 18
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(':lib-vudeo-extractor'))
|
implementation(project(':lib-vudeo-extractor'))
|
||||||
implementation(project(':lib-dood-extractor'))
|
implementation(project(':lib-dood-extractor'))
|
||||||
implementation(project(':lib-mytv-extractor'))
|
|
||||||
implementation(project(':lib-okru-extractor'))
|
implementation(project(':lib-okru-extractor'))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode
|
|||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
||||||
import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
|
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.okruextractor.OkruExtractor
|
||||||
import eu.kanade.tachiyomi.lib.vudeoextractor.VudeoExtractor
|
import eu.kanade.tachiyomi.lib.vudeoextractor.VudeoExtractor
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
@ -123,12 +122,6 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
videoList.add(video)
|
videoList.add(video)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (server.lowercase() == "mytv" || server.lowercase() == "stream") {
|
|
||||||
val playerId = it.attr("id")
|
|
||||||
val url = "https://www.myvi.tv/embed/" + document.select("div#player-tabs div.tab-blocks div.tab-content div div#content_$playerId").text()
|
|
||||||
val video = MytvExtractor(client).videosFromUrl(url)
|
|
||||||
videoList.addAll(video)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return videoList
|
return videoList
|
||||||
@ -271,8 +264,8 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
val videoQualityPref = ListPreference(screen.context).apply {
|
val videoQualityPref = ListPreference(screen.context).apply {
|
||||||
key = "preferred_quality"
|
key = "preferred_quality"
|
||||||
title = "Preferred quality"
|
title = "Preferred quality"
|
||||||
entries = arrayOf("Vudeo", "Mytv", "Doodstream")
|
entries = arrayOf("Vudeo", "Doodstream")
|
||||||
entryValues = arrayOf("Vudeo", "Mytv", "Doodstream")
|
entryValues = arrayOf("Vudeo", "Doodstream")
|
||||||
setDefaultValue("Vudeo")
|
setDefaultValue("Vudeo")
|
||||||
summary = "%s"
|
summary = "%s"
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ ext {
|
|||||||
extName = 'TR Anime Izle'
|
extName = 'TR Anime Izle'
|
||||||
pkgNameSuffix = 'tr.tranimeizle'
|
pkgNameSuffix = 'tr.tranimeizle'
|
||||||
extClass = '.TRAnimeIzle'
|
extClass = '.TRAnimeIzle'
|
||||||
extVersionCode = 10
|
extVersionCode = 11
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15,7 +15,6 @@ dependencies {
|
|||||||
implementation(project(":lib-filemoon-extractor"))
|
implementation(project(":lib-filemoon-extractor"))
|
||||||
implementation(project(":lib-mixdrop-extractor"))
|
implementation(project(":lib-mixdrop-extractor"))
|
||||||
implementation(project(":lib-mp4upload-extractor"))
|
implementation(project(":lib-mp4upload-extractor"))
|
||||||
implementation(project(":lib-mytv-extractor"))
|
|
||||||
implementation(project(":lib-okru-extractor"))
|
implementation(project(":lib-okru-extractor"))
|
||||||
implementation(project(":lib-sendvid-extractor"))
|
implementation(project(":lib-sendvid-extractor"))
|
||||||
implementation(project(":lib-sibnet-extractor"))
|
implementation(project(":lib-sibnet-extractor"))
|
||||||
|
@ -16,7 +16,6 @@ import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
|
|||||||
import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor
|
import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor
|
||||||
import eu.kanade.tachiyomi.lib.mixdropextractor.MixDropExtractor
|
import eu.kanade.tachiyomi.lib.mixdropextractor.MixDropExtractor
|
||||||
import eu.kanade.tachiyomi.lib.mp4uploadextractor.Mp4uploadExtractor
|
import eu.kanade.tachiyomi.lib.mp4uploadextractor.Mp4uploadExtractor
|
||||||
import eu.kanade.tachiyomi.lib.mytvextractor.MytvExtractor
|
|
||||||
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
||||||
import eu.kanade.tachiyomi.lib.sendvidextractor.SendvidExtractor
|
import eu.kanade.tachiyomi.lib.sendvidextractor.SendvidExtractor
|
||||||
import eu.kanade.tachiyomi.lib.sibnetextractor.SibnetExtractor
|
import eu.kanade.tachiyomi.lib.sibnetextractor.SibnetExtractor
|
||||||
@ -225,7 +224,6 @@ class TRAnimeIzle : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
|
|||||||
private val filemoonExtractor by lazy { FilemoonExtractor(client) }
|
private val filemoonExtractor by lazy { FilemoonExtractor(client) }
|
||||||
private val mixDropExtractor by lazy { MixDropExtractor(client) }
|
private val mixDropExtractor by lazy { MixDropExtractor(client) }
|
||||||
private val mp4uploadExtractor by lazy { Mp4uploadExtractor(client) }
|
private val mp4uploadExtractor by lazy { Mp4uploadExtractor(client) }
|
||||||
private val mytvExtractor by lazy { MytvExtractor(client) }
|
|
||||||
private val okruExtractor by lazy { OkruExtractor(client) }
|
private val okruExtractor by lazy { OkruExtractor(client) }
|
||||||
private val sendvidExtractor by lazy { SendvidExtractor(client, headers) }
|
private val sendvidExtractor by lazy { SendvidExtractor(client, headers) }
|
||||||
private val sibnetExtractor by lazy { SibnetExtractor(client) }
|
private val sibnetExtractor by lazy { SibnetExtractor(client) }
|
||||||
@ -255,7 +253,6 @@ class TRAnimeIzle : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
|
|||||||
"filemoon.sx" in url -> filemoonExtractor.videosFromUrl(url, headers = headers)
|
"filemoon.sx" in url -> filemoonExtractor.videosFromUrl(url, headers = headers)
|
||||||
"mixdrop" in url -> mixDropExtractor.videoFromUrl(url)
|
"mixdrop" in url -> mixDropExtractor.videoFromUrl(url)
|
||||||
"mp4upload" in url -> mp4uploadExtractor.videosFromUrl(url, headers)
|
"mp4upload" in url -> mp4uploadExtractor.videosFromUrl(url, headers)
|
||||||
"myvi." in url -> mytvExtractor.videosFromUrl(url)
|
|
||||||
"ok.ru" in url || "odnoklassniki.ru" in url -> okruExtractor.videosFromUrl(url)
|
"ok.ru" in url || "odnoklassniki.ru" in url -> okruExtractor.videosFromUrl(url)
|
||||||
"sendvid.com" in url -> sendvidExtractor.videosFromUrl(url)
|
"sendvid.com" in url -> sendvidExtractor.videosFromUrl(url)
|
||||||
"video.sibnet" in url -> sibnetExtractor.videosFromUrl(url)
|
"video.sibnet" in url -> sibnetExtractor.videosFromUrl(url)
|
||||||
@ -442,7 +439,6 @@ class TRAnimeIzle : ParsedAnimeHttpSource(), ConfigurableAnimeSource {
|
|||||||
"Filemoon",
|
"Filemoon",
|
||||||
"MixDrop",
|
"MixDrop",
|
||||||
"Mp4upload",
|
"Mp4upload",
|
||||||
"Myvi",
|
|
||||||
"Ok.RU",
|
"Ok.RU",
|
||||||
"SendVid",
|
"SendVid",
|
||||||
"Sibnet",
|
"Sibnet",
|
||||||
|
@ -13,7 +13,6 @@ dependencies {
|
|||||||
implementation(project(':lib-filemoon-extractor'))
|
implementation(project(':lib-filemoon-extractor'))
|
||||||
implementation(project(':lib-googledrive-extractor'))
|
implementation(project(':lib-googledrive-extractor'))
|
||||||
implementation(project(':lib-mp4upload-extractor'))
|
implementation(project(':lib-mp4upload-extractor'))
|
||||||
implementation(project(":lib-mytv-extractor"))
|
|
||||||
implementation(project(":lib-okru-extractor"))
|
implementation(project(":lib-okru-extractor"))
|
||||||
implementation(project(":lib-sendvid-extractor"))
|
implementation(project(":lib-sendvid-extractor"))
|
||||||
implementation(project(":lib-sibnet-extractor"))
|
implementation(project(":lib-sibnet-extractor"))
|
||||||
@ -26,7 +25,7 @@ ext {
|
|||||||
extName = 'Türk Anime TV'
|
extName = 'Türk Anime TV'
|
||||||
pkgNameSuffix = 'tr.turkanime'
|
pkgNameSuffix = 'tr.turkanime'
|
||||||
extClass = '.TurkAnime'
|
extClass = '.TurkAnime'
|
||||||
extVersionCode = 17
|
extVersionCode = 18
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,6 @@ import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor
|
|||||||
import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor
|
import eu.kanade.tachiyomi.lib.filemoonextractor.FilemoonExtractor
|
||||||
import eu.kanade.tachiyomi.lib.googledriveextractor.GoogleDriveExtractor
|
import eu.kanade.tachiyomi.lib.googledriveextractor.GoogleDriveExtractor
|
||||||
import eu.kanade.tachiyomi.lib.mp4uploadextractor.Mp4uploadExtractor
|
import eu.kanade.tachiyomi.lib.mp4uploadextractor.Mp4uploadExtractor
|
||||||
import eu.kanade.tachiyomi.lib.mytvextractor.MytvExtractor
|
|
||||||
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor
|
||||||
import eu.kanade.tachiyomi.lib.sendvidextractor.SendvidExtractor
|
import eu.kanade.tachiyomi.lib.sendvidextractor.SendvidExtractor
|
||||||
import eu.kanade.tachiyomi.lib.sibnetextractor.SibnetExtractor
|
import eu.kanade.tachiyomi.lib.sibnetextractor.SibnetExtractor
|
||||||
@ -286,9 +285,6 @@ class TurkAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
"MP4UPLOAD" -> {
|
"MP4UPLOAD" -> {
|
||||||
Mp4uploadExtractor(client).videosFromUrl(hosterLink, headers, prefix = "$subber: ")
|
Mp4uploadExtractor(client).videosFromUrl(hosterLink, headers, prefix = "$subber: ")
|
||||||
}
|
}
|
||||||
"MYVI" -> {
|
|
||||||
MytvExtractor(client).videosFromUrl(hosterLink, prefix = "$subber: ")
|
|
||||||
}
|
|
||||||
"MVIDOO" -> {
|
"MVIDOO" -> {
|
||||||
MVidooExtractor(client).videosFromUrl(hosterLink, prefix = "$subber: ")
|
MVidooExtractor(client).videosFromUrl(hosterLink, prefix = "$subber: ")
|
||||||
}
|
}
|
||||||
@ -426,7 +422,6 @@ class TurkAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
"GDRIVE",
|
"GDRIVE",
|
||||||
"MAIL",
|
"MAIL",
|
||||||
"MP4UPLOAD",
|
"MP4UPLOAD",
|
||||||
"MYVI",
|
|
||||||
"MVIDOO",
|
"MVIDOO",
|
||||||
"ODNOKLASSNIKI",
|
"ODNOKLASSNIKI",
|
||||||
"SENDVID",
|
"SENDVID",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user