fix: Purge MyTV/myvi extractor (#2592)

This commit is contained in:
Claudemirovsky 2023-12-02 07:28:44 -03:00 committed by GitHub
parent 1bf789a91d
commit 1fd38ddddb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 6 additions and 75 deletions

View File

@ -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)
}

View File

@ -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))
}
}
}

View File

@ -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"))
} }

View File

@ -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"

View File

@ -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),

View File

@ -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'))
} }

View File

@ -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"

View File

@ -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"))

View File

@ -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",

View File

@ -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'
} }

View File

@ -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",