diff --git a/src/ar/animelek/build.gradle b/src/ar/animelek/build.gradle index b3467ca4a..dfcd19e08 100644 --- a/src/ar/animelek/build.gradle +++ b/src/ar/animelek/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-okru-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) diff --git a/src/ar/animelek/src/eu/kanade/tachiyomi/animeextension/ar/animelek/AnimeLek.kt b/src/ar/animelek/src/eu/kanade/tachiyomi/animeextension/ar/animelek/AnimeLek.kt index b16e4a5a8..bc902a069 100644 --- a/src/ar/animelek/src/eu/kanade/tachiyomi/animeextension/ar/animelek/AnimeLek.kt +++ b/src/ar/animelek/src/eu/kanade/tachiyomi/animeextension/ar/animelek/AnimeLek.kt @@ -4,9 +4,7 @@ import android.app.Application import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor import eu.kanade.tachiyomi.animeextension.ar.animelek.extractors.SharedExtractor -import eu.kanade.tachiyomi.animeextension.ar.animelek.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.ar.animelek.extractors.VidBomExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -15,7 +13,9 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode 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.okruextractor.OkruExtractor import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Headers diff --git a/src/ar/animelek/src/eu/kanade/tachiyomi/animeextension/ar/animelek/extractors/StreamTapeExtractor.kt b/src/ar/animelek/src/eu/kanade/tachiyomi/animeextension/ar/animelek/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 31e713fa3..000000000 --- a/src/ar/animelek/src/eu/kanade/tachiyomi/animeextension/ar/animelek/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.ar.animelek.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return Video(url, "no video", "videoUrl") - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/ar/animerco/build.gradle b/src/ar/animerco/build.gradle index ca6dd6500..d6d837ba0 100644 --- a/src/ar/animerco/build.gradle +++ b/src/ar/animerco/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/ar/animerco/src/eu/kanade/tachiyomi/animeextension/ar/animerco/Animerco.kt b/src/ar/animerco/src/eu/kanade/tachiyomi/animeextension/ar/animerco/Animerco.kt index 4fe6f14f2..491d62403 100644 --- a/src/ar/animerco/src/eu/kanade/tachiyomi/animeextension/ar/animerco/Animerco.kt +++ b/src/ar/animerco/src/eu/kanade/tachiyomi/animeextension/ar/animerco/Animerco.kt @@ -7,7 +7,6 @@ import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.ar.animerco.extractors.FembedExtractor import eu.kanade.tachiyomi.animeextension.ar.animerco.extractors.MpforuploadExtractor import eu.kanade.tachiyomi.animeextension.ar.animerco.extractors.SharedExtractor -import eu.kanade.tachiyomi.animeextension.ar.animerco.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.ar.animerco.extractors.UQLoadExtractor import eu.kanade.tachiyomi.animeextension.ar.animerco.extractors.VidBomExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource @@ -18,6 +17,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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.asJsoup diff --git a/src/ar/animerco/src/eu/kanade/tachiyomi/animeextension/ar/animerco/extractors/StreamTapeExtractor.kt b/src/ar/animerco/src/eu/kanade/tachiyomi/animeextension/ar/animerco/extractors/StreamTapeExtractor.kt deleted file mode 100644 index e44a8bd4e..000000000 --- a/src/ar/animerco/src/eu/kanade/tachiyomi/animeextension/ar/animerco/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.ar.animerco.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return Video(url, "no video", "videoUrl") - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/ar/animetitans/src/eu/kanade/tachiyomi/animeextension/ar/animetitans/extractors/StreamTapeExtractor.kt b/src/ar/animetitans/src/eu/kanade/tachiyomi/animeextension/ar/animetitans/extractors/StreamTapeExtractor.kt deleted file mode 100644 index ae7ed22d0..000000000 --- a/src/ar/animetitans/src/eu/kanade/tachiyomi/animeextension/ar/animetitans/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.ar.animetitans.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return Video(url, "no video", "videoUrl") - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/ar/asia2tv/build.gradle b/src/ar/asia2tv/build.gradle index 06f3a0d5a..500d42323 100644 --- a/src/ar/asia2tv/build.gradle +++ b/src/ar/asia2tv/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-okru-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/ar/asia2tv/src/eu/kanade/tachiyomi/animeextension/ar/asia2tv/Asia2TV.kt b/src/ar/asia2tv/src/eu/kanade/tachiyomi/animeextension/ar/asia2tv/Asia2TV.kt index a80bd1ea4..0383e1c98 100644 --- a/src/ar/asia2tv/src/eu/kanade/tachiyomi/animeextension/ar/asia2tv/Asia2TV.kt +++ b/src/ar/asia2tv/src/eu/kanade/tachiyomi/animeextension/ar/asia2tv/Asia2TV.kt @@ -5,7 +5,6 @@ import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.ar.asia2tv.extractors.FembedExtractor -import eu.kanade.tachiyomi.animeextension.ar.asia2tv.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -15,6 +14,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.okruextractor.OkruExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.HttpUrl.Companion.toHttpUrlOrNull diff --git a/src/ar/asia2tv/src/eu/kanade/tachiyomi/animeextension/ar/asia2tv/extractors/StreamTapeExtractor.kt b/src/ar/asia2tv/src/eu/kanade/tachiyomi/animeextension/ar/asia2tv/extractors/StreamTapeExtractor.kt deleted file mode 100644 index c8fe508b4..000000000 --- a/src/ar/asia2tv/src/eu/kanade/tachiyomi/animeextension/ar/asia2tv/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,20 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.ar.asia2tv.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/ar/movizland/build.gradle b/src/ar/movizland/build.gradle index 170832ffc..abb990f7d 100644 --- a/src/ar/movizland/build.gradle +++ b/src/ar/movizland/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/ar/movizland/src/eu/kanade/tachiyomi/animeextension/ar/movizland/Movizland.kt b/src/ar/movizland/src/eu/kanade/tachiyomi/animeextension/ar/movizland/Movizland.kt index c8b2032fc..3637a88ec 100644 --- a/src/ar/movizland/src/eu/kanade/tachiyomi/animeextension/ar/movizland/Movizland.kt +++ b/src/ar/movizland/src/eu/kanade/tachiyomi/animeextension/ar/movizland/Movizland.kt @@ -4,10 +4,8 @@ import android.app.Application import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.animeextension.ar.movizland.extractors.LinkboxExtractor import eu.kanade.tachiyomi.animeextension.ar.movizland.extractors.MoshahdaExtractor -import eu.kanade.tachiyomi.animeextension.ar.movizland.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.ar.movizland.extractors.UQLoadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter @@ -16,6 +14,8 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode 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.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.asJsoup @@ -158,7 +158,7 @@ class Movizland : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val seasonData = season.select("a").attr("data-term") val refererHeaders = Headers.headersOf("referer", url, "x-requested-with", "XMLHttpRequest") val requestBody = FormBody.Builder().add("season", seasonData).build() - val getEpisodes = client.newCall(POST("${baseUrl}/wp-content/themes/Moviezland2022/EpisodesList.php", refererHeaders, requestBody)).execute().asJsoup() + val getEpisodes = client.newCall(POST("$baseUrl/wp-content/themes/Moviezland2022/EpisodesList.php", refererHeaders, requestBody)).execute().asJsoup() for (episode in getEpisodes.select("div.EpisodeItem").reversed()) { addEpisodeNew(episode.select("a").attr("href"), "series", season.select("a").text() + " " + episode.select("a").text()) } @@ -208,7 +208,7 @@ class Movizland : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val videosFromURL = UQLoadExtractor(client).videoFromUrl(link, "Uqload: 720p") if (videosFromURL != null) videos.add(videosFromURL) } else if (link.contains("streamtape")) { - val videosFromURL = StreamTapeExtractor(client).videoFromUrl(link) + val videosFromURL = StreamTapeExtractor(client).videoFromUrl(link, "StreamTape: 1080p") if (videosFromURL != null) videos.add(videosFromURL) } } diff --git a/src/ar/movizland/src/eu/kanade/tachiyomi/animeextension/ar/movizland/extractors/StreamTapeExtractor.kt b/src/ar/movizland/src/eu/kanade/tachiyomi/animeextension/ar/movizland/extractors/StreamTapeExtractor.kt deleted file mode 100644 index e044d4157..000000000 --- a/src/ar/movizland/src/eu/kanade/tachiyomi/animeextension/ar/movizland/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.ar.movizland.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('norobotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('norobotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape: 1080p" - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/aniflix/build.gradle b/src/de/aniflix/build.gradle index 39d9b0c68..f52e91d79 100644 --- a/src/de/aniflix/build.gradle +++ b/src/de/aniflix/build.gradle @@ -11,6 +11,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/de/aniflix/src/eu/kanade/tachiyomi/animeextension/de/aniflix/Aniflix.kt b/src/de/aniflix/src/eu/kanade/tachiyomi/animeextension/de/aniflix/Aniflix.kt index f18fd7bef..550a3bec8 100644 --- a/src/de/aniflix/src/eu/kanade/tachiyomi/animeextension/de/aniflix/Aniflix.kt +++ b/src/de/aniflix/src/eu/kanade/tachiyomi/animeextension/de/aniflix/Aniflix.kt @@ -10,8 +10,6 @@ import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.AnimeDto import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.Episode import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.Release import eu.kanade.tachiyomi.animeextension.de.aniflix.dto.Season -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor -import eu.kanade.tachiyomi.animeextension.de.aniflix.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.de.aniflix.extractors.StreamlareExtractor import eu.kanade.tachiyomi.animeextension.de.aniflix.extractors.VoeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource @@ -21,6 +19,8 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource +import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.asObservableSuccess diff --git a/src/de/aniflix/src/eu/kanade/tachiyomi/animeextension/de/aniflix/extractors/StreamTapeExtractor.kt b/src/de/aniflix/src/eu/kanade/tachiyomi/animeextension/de/aniflix/extractors/StreamTapeExtractor.kt deleted file mode 100644 index edd757c3a..000000000 --- a/src/de/aniflix/src/eu/kanade/tachiyomi/animeextension/de/aniflix/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.aniflix.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/aniking/build.gradle b/src/de/aniking/build.gradle index 41215a0e8..19c20ef90 100644 --- a/src/de/aniking/build.gradle +++ b/src/de/aniking/build.gradle @@ -11,6 +11,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) implementation(project(':lib-streamsb-extractor')) } diff --git a/src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/Aniking.kt b/src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/Aniking.kt index 73af8394d..3ef5ab880 100644 --- a/src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/Aniking.kt +++ b/src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/Aniking.kt @@ -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.aniking.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.de.aniking.extractors.StreamZExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -15,6 +14,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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Headers diff --git a/src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/extractors/StreamTapeExtractor.kt b/src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 7f8cf4e3b..000000000 --- a/src/de/aniking/src/eu/kanade/tachiyomi/animeextension/de/aniking/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.aniking.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/anime24/build.gradle b/src/de/anime24/build.gradle index f940b79f0..db042d412 100644 --- a/src/de/anime24/build.gradle +++ b/src/de/anime24/build.gradle @@ -10,4 +10,9 @@ ext { libVersion = '13' } +dependencies { + implementation(project(':lib-streamtape-extractor')) +} + + apply from: "$rootDir/common.gradle" diff --git a/src/de/anime24/src/eu/kanade/tachiyomi/animeextension/de/anime24/Anime24.kt b/src/de/anime24/src/eu/kanade/tachiyomi/animeextension/de/anime24/Anime24.kt index dbaf667d4..72566ca55 100644 --- a/src/de/anime24/src/eu/kanade/tachiyomi/animeextension/de/anime24/Anime24.kt +++ b/src/de/anime24/src/eu/kanade/tachiyomi/animeextension/de/anime24/Anime24.kt @@ -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.anime24.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.de.anime24.extractors.VoeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -13,6 +12,7 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/de/anime24/src/eu/kanade/tachiyomi/animeextension/de/anime24/extractors/StreamTapeExtractor.kt b/src/de/anime24/src/eu/kanade/tachiyomi/animeextension/de/anime24/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 2428380d0..000000000 --- a/src/de/anime24/src/eu/kanade/tachiyomi/animeextension/de/anime24/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.anime24.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/animeshitai/build.gradle b/src/de/animeshitai/build.gradle index 4d1c82260..dfb7b20fb 100644 --- a/src/de/animeshitai/build.gradle +++ b/src/de/animeshitai/build.gradle @@ -11,6 +11,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/de/animeshitai/src/eu/kanade/tachiyomi/animeextension/de/animeshitai/AnimeShitai.kt b/src/de/animeshitai/src/eu/kanade/tachiyomi/animeextension/de/animeshitai/AnimeShitai.kt index 5a62a6bb9..fdf9bf1c2 100644 --- a/src/de/animeshitai/src/eu/kanade/tachiyomi/animeextension/de/animeshitai/AnimeShitai.kt +++ b/src/de/animeshitai/src/eu/kanade/tachiyomi/animeextension/de/animeshitai/AnimeShitai.kt @@ -7,8 +7,6 @@ import androidx.preference.ListPreference import androidx.preference.MultiSelectListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.de.animeshitai.ASFilters.applyFilterParams -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor -import eu.kanade.tachiyomi.animeextension.de.animeshitai.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.de.animeshitai.model.ASAnime import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -17,6 +15,8 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode 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.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.asObservableSuccess diff --git a/src/de/animeshitai/src/eu/kanade/tachiyomi/animeextension/de/animeshitai/extractors/StreamTapeExtractor.kt b/src/de/animeshitai/src/eu/kanade/tachiyomi/animeextension/de/animeshitai/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 1ffdacd51..000000000 --- a/src/de/animeshitai/src/eu/kanade/tachiyomi/animeextension/de/animeshitai/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.animeshitai.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/aniworld/build.gradle b/src/de/aniworld/build.gradle index 1224ff2f3..cde6f0198 100644 --- a/src/de/aniworld/build.gradle +++ b/src/de/aniworld/build.gradle @@ -11,6 +11,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/AniWorld.kt b/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/AniWorld.kt index 9f18faaa2..dd71961dc 100644 --- a/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/AniWorld.kt +++ b/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/AniWorld.kt @@ -9,8 +9,6 @@ import androidx.preference.EditTextPreference import androidx.preference.ListPreference import androidx.preference.MultiSelectListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor -import eu.kanade.tachiyomi.animeextension.de.aniworld.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.de.aniworld.extractors.VidozaExtractor import eu.kanade.tachiyomi.animeextension.de.aniworld.extractors.VoeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource @@ -20,6 +18,8 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode 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.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.asJsoup diff --git a/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/extractors/StreamTapeExtractor.kt b/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 1f1451bfb..000000000 --- a/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.aniworld.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/moviedream/build.gradle b/src/de/moviedream/build.gradle index 383519f48..385cf4bd8 100644 --- a/src/de/moviedream/build.gradle +++ b/src/de/moviedream/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/de/moviedream/src/eu/kanade/tachiyomi/animeextension/de/moviedream/Moviedream.kt b/src/de/moviedream/src/eu/kanade/tachiyomi/animeextension/de/moviedream/Moviedream.kt index 0dbe3b804..4ef73a781 100644 --- a/src/de/moviedream/src/eu/kanade/tachiyomi/animeextension/de/moviedream/Moviedream.kt +++ b/src/de/moviedream/src/eu/kanade/tachiyomi/animeextension/de/moviedream/Moviedream.kt @@ -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.moviedream.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.de.moviedream.extractors.VoeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -14,6 +13,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode 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.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/de/moviedream/src/eu/kanade/tachiyomi/animeextension/de/moviedream/extractors/StreamTapeExtractor.kt b/src/de/moviedream/src/eu/kanade/tachiyomi/animeextension/de/moviedream/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 54e379acc..000000000 --- a/src/de/moviedream/src/eu/kanade/tachiyomi/animeextension/de/moviedream/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.moviedream.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('norobotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('norobotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/serienstream/build.gradle b/src/de/serienstream/build.gradle index 6dc743ac5..5b87c3b12 100644 --- a/src/de/serienstream/build.gradle +++ b/src/de/serienstream/build.gradle @@ -11,6 +11,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/de/serienstream/src/eu/kanade/tachiyomi/animeextension/de/serienstream/Serienstream.kt b/src/de/serienstream/src/eu/kanade/tachiyomi/animeextension/de/serienstream/Serienstream.kt index 8e1b5a196..6456f1a35 100644 --- a/src/de/serienstream/src/eu/kanade/tachiyomi/animeextension/de/serienstream/Serienstream.kt +++ b/src/de/serienstream/src/eu/kanade/tachiyomi/animeextension/de/serienstream/Serienstream.kt @@ -9,8 +9,6 @@ import androidx.preference.EditTextPreference import androidx.preference.ListPreference import androidx.preference.MultiSelectListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor -import eu.kanade.tachiyomi.animeextension.de.serienstream.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.de.serienstream.extractors.VoeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -19,6 +17,8 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode 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.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.asJsoup diff --git a/src/de/serienstream/src/eu/kanade/tachiyomi/animeextension/de/serienstream/extractors/StreamTapeExtractor.kt b/src/de/serienstream/src/eu/kanade/tachiyomi/animeextension/de/serienstream/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 8bc1952ed..000000000 --- a/src/de/serienstream/src/eu/kanade/tachiyomi/animeextension/de/serienstream/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.serienstream.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/de/streamcloud/src/eu/kanade/tachiyomi/animeextension/de/streamcloud/StreamCloud.kt b/src/de/streamcloud/src/eu/kanade/tachiyomi/animeextension/de/streamcloud/StreamCloud.kt index ae3495398..61708255b 100644 --- a/src/de/streamcloud/src/eu/kanade/tachiyomi/animeextension/de/streamcloud/StreamCloud.kt +++ b/src/de/streamcloud/src/eu/kanade/tachiyomi/animeextension/de/streamcloud/StreamCloud.kt @@ -5,13 +5,13 @@ import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.MultiSelectListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode 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.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Headers diff --git a/src/de/streamcloud/src/eu/kanade/tachiyomi/animeextension/de/streamcloud/extractors/StreamTapeExtractor.kt b/src/de/streamcloud/src/eu/kanade/tachiyomi/animeextension/de/streamcloud/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 53fe98187..000000000 --- a/src/de/streamcloud/src/eu/kanade/tachiyomi/animeextension/de/streamcloud/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.streamcloud.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/en/asianload/build.gradle b/src/en/asianload/build.gradle index 1eecc7abe..f783b2407 100644 --- a/src/en/asianload/build.gradle +++ b/src/en/asianload/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/en/asianload/src/eu/kanade/tachiyomi/animeextension/en/asianload/AsianLoad.kt b/src/en/asianload/src/eu/kanade/tachiyomi/animeextension/en/asianload/AsianLoad.kt index e1a981e32..fd02062ea 100644 --- a/src/en/asianload/src/eu/kanade/tachiyomi/animeextension/en/asianload/AsianLoad.kt +++ b/src/en/asianload/src/eu/kanade/tachiyomi/animeextension/en/asianload/AsianLoad.kt @@ -5,7 +5,6 @@ import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.en.asianload.extractors.FembedExtractor -import eu.kanade.tachiyomi.animeextension.en.asianload.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -15,6 +14,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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.HttpUrl.Companion.toHttpUrlOrNull diff --git a/src/en/asianload/src/eu/kanade/tachiyomi/animeextension/en/asianload/extractors/StreamTapeExtractor.kt b/src/en/asianload/src/eu/kanade/tachiyomi/animeextension/en/asianload/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 69243ce00..000000000 --- a/src/en/asianload/src/eu/kanade/tachiyomi/animeextension/en/asianload/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.en.asianload.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/en/dramacool/build.gradle b/src/en/dramacool/build.gradle index c45c03940..37afb3aa4 100644 --- a/src/en/dramacool/build.gradle +++ b/src/en/dramacool/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt b/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt index e262f7247..fa08ac8dc 100644 --- a/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt +++ b/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/DramaCool.kt @@ -7,7 +7,6 @@ import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.AppInfo import eu.kanade.tachiyomi.animeextension.en.dramacool.extractors.FembedExtractor -import eu.kanade.tachiyomi.animeextension.en.dramacool.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage @@ -17,6 +16,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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/extractors/StreamTapeExtractor.kt b/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 963f7c183..000000000 --- a/src/en/dramacool/src/eu/kanade/tachiyomi/animeextension/en/dramacool/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.en.dramacool.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/en/genoanime/build.gradle b/src/en/genoanime/build.gradle index 974615003..008dc5b55 100644 --- a/src/en/genoanime/build.gradle +++ b/src/en/genoanime/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt b/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt index 6f005985c..0dffbd0c7 100644 --- a/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt +++ b/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt @@ -5,7 +5,6 @@ import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.en.genoanime.extractors.FembedExtractor -import eu.kanade.tachiyomi.animeextension.en.genoanime.extractors.StreamTapeExtractor 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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.asJsoup diff --git a/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/extractors/StreamTapeExtractor.kt b/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/extractors/StreamTapeExtractor.kt deleted file mode 100644 index fb6d5a89f..000000000 --- a/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.en.genoanime.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/en/zoro/build.gradle b/src/en/zoro/build.gradle index b9285f877..1a03b3283 100644 --- a/src/en/zoro/build.gradle +++ b/src/en/zoro/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) compileOnly libs.bundles.coroutines } diff --git a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt b/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt index 230f07add..7e320b66c 100644 --- a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt +++ b/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/Zoro.kt @@ -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.en.zoro.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.en.zoro.extractors.ZoroExtractor import eu.kanade.tachiyomi.animeextension.en.zoro.utils.JSONUtil import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource @@ -16,6 +15,7 @@ import eu.kanade.tachiyomi.animesource.model.Track import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.asObservableSuccess import kotlinx.coroutines.Dispatchers @@ -138,7 +138,7 @@ class Zoro : ConfigurableAnimeSource, ParsedAnimeHttpSource() { } "Streamtape" in name -> StreamTapeExtractor(client) - .videoFromUrl(sourceUrl, subDub) + .videoFromUrl(sourceUrl, "StreamTape - $subDub") ?.let { listOf(it) } else -> null } diff --git a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/extractors/StreamTapeExtractor.kt b/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 5bc06b882..000000000 --- a/src/en/zoro/src/eu/kanade/tachiyomi/animeextension/en/zoro/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,20 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.en.zoro.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, subDub: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data() - ?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape - $subDub" - return Video(url, quality, videoUrl) - } -} diff --git a/src/es/animefenix/build.gradle b/src/es/animefenix/build.gradle index 8411ab10e..9d0442000 100644 --- a/src/es/animefenix/build.gradle +++ b/src/es/animefenix/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-okru-extractor')) implementation(project(':lib-streamsb-extractor')) } diff --git a/src/es/animefenix/src/eu/kanade/tachiyomi/animeextension/es/animefenix/Animefenix.kt b/src/es/animefenix/src/eu/kanade/tachiyomi/animeextension/es/animefenix/Animefenix.kt index c3940d889..d2025b597 100644 --- a/src/es/animefenix/src/eu/kanade/tachiyomi/animeextension/es/animefenix/Animefenix.kt +++ b/src/es/animefenix/src/eu/kanade/tachiyomi/animeextension/es/animefenix/Animefenix.kt @@ -6,7 +6,6 @@ import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.animefenix.extractors.FembedExtractor import eu.kanade.tachiyomi.animeextension.es.animefenix.extractors.Mp4uploadExtractor -import eu.kanade.tachiyomi.animeextension.es.animefenix.extractors.StreamTapeExtractor 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.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/es/animefenix/src/eu/kanade/tachiyomi/animeextension/es/animefenix/extractors/StreamTapeExtractor.kt b/src/es/animefenix/src/eu/kanade/tachiyomi/animeextension/es/animefenix/extractors/StreamTapeExtractor.kt deleted file mode 100644 index fd1051e74..000000000 --- a/src/es/animefenix/src/eu/kanade/tachiyomi/animeextension/es/animefenix/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.animefenix.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/animeflv/build.gradle b/src/es/animeflv/build.gradle index 577276151..5bd5197f9 100644 --- a/src/es/animeflv/build.gradle +++ b/src/es/animeflv/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-okru-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) diff --git a/src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/AnimeFlv.kt b/src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/AnimeFlv.kt index e602ca17e..ea4fc3488 100644 --- a/src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/AnimeFlv.kt +++ b/src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/AnimeFlv.kt @@ -5,7 +5,6 @@ import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.animeflv.extractors.FembedExtractor -import eu.kanade.tachiyomi.animeextension.es.animeflv.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.es.animeflv.extractors.YourUploadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter @@ -17,6 +16,7 @@ import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import kotlinx.serialization.decodeFromString diff --git a/src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/extractors/StreamTapeExtractor.kt b/src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/extractors/StreamTapeExtractor.kt deleted file mode 100644 index d805fb458..000000000 --- a/src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.animeflv.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/animeid/build.gradle b/src/es/animeid/build.gradle index a12ee1e9b..78dac1775 100644 --- a/src/es/animeid/build.gradle +++ b/src/es/animeid/build.gradle @@ -9,4 +9,9 @@ ext { libVersion = '13' } +dependencies { + implementation(project(':lib-streamtape-extractor')) +} + + apply from: "$rootDir/common.gradle" diff --git a/src/es/animeid/src/eu/kanade/tachiyomi/animeextension/es/animeid/AnimeID.kt b/src/es/animeid/src/eu/kanade/tachiyomi/animeextension/es/animeid/AnimeID.kt index 2f12ade32..54e3603d3 100644 --- a/src/es/animeid/src/eu/kanade/tachiyomi/animeextension/es/animeid/AnimeID.kt +++ b/src/es/animeid/src/eu/kanade/tachiyomi/animeextension/es/animeid/AnimeID.kt @@ -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.es.animeid.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -12,6 +11,7 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import kotlinx.serialization.decodeFromString diff --git a/src/es/animeid/src/eu/kanade/tachiyomi/animeextension/es/animeid/extractors/StreamTapeExtractor.kt b/src/es/animeid/src/eu/kanade/tachiyomi/animeextension/es/animeid/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 33590f7f1..000000000 --- a/src/es/animeid/src/eu/kanade/tachiyomi/animeextension/es/animeid/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.animeid.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/animelatinohd/build.gradle b/src/es/animelatinohd/build.gradle index 5b663dbf2..673af7092 100644 --- a/src/es/animelatinohd/build.gradle +++ b/src/es/animelatinohd/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-okru-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) diff --git a/src/es/animelatinohd/src/eu/kanade/tachiyomi/animeextension/es/animelatinohd/AnimeLatinoHD.kt b/src/es/animelatinohd/src/eu/kanade/tachiyomi/animeextension/es/animelatinohd/AnimeLatinoHD.kt index 0e44a47db..3e06f2c61 100644 --- a/src/es/animelatinohd/src/eu/kanade/tachiyomi/animeextension/es/animelatinohd/AnimeLatinoHD.kt +++ b/src/es/animelatinohd/src/eu/kanade/tachiyomi/animeextension/es/animelatinohd/AnimeLatinoHD.kt @@ -6,7 +6,6 @@ import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.animelatinohd.extractors.FembedExtractor import eu.kanade.tachiyomi.animeextension.es.animelatinohd.extractors.SolidFilesExtractor -import eu.kanade.tachiyomi.animeextension.es.animelatinohd.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -18,6 +17,7 @@ import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import kotlinx.serialization.decodeFromString diff --git a/src/es/animelatinohd/src/eu/kanade/tachiyomi/animeextension/es/animelatinohd/extractors/StreamTapeExtractor.kt b/src/es/animelatinohd/src/eu/kanade/tachiyomi/animeextension/es/animelatinohd/extractors/StreamTapeExtractor.kt deleted file mode 100644 index d83273995..000000000 --- a/src/es/animelatinohd/src/eu/kanade/tachiyomi/animeextension/es/animelatinohd/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.animelatinohd.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/animeonlineninja/build.gradle b/src/es/animeonlineninja/build.gradle index a3eeb9fe7..94d629e86 100644 --- a/src/es/animeonlineninja/build.gradle +++ b/src/es/animeonlineninja/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeonlineNinja.kt b/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeonlineNinja.kt index 5d1b87674..a4f020885 100644 --- a/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeonlineNinja.kt +++ b/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/AnimeonlineNinja.kt @@ -6,7 +6,6 @@ import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.animeonlineninja.extractors.FembedExtractor import eu.kanade.tachiyomi.animeextension.es.animeonlineninja.extractors.JsUnpacker -import eu.kanade.tachiyomi.animeextension.es.animeonlineninja.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.es.animeonlineninja.extractors.UploadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter @@ -18,6 +17,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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/extractors/StreamTapeExtractor.kt b/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 468fd52b5..000000000 --- a/src/es/animeonlineninja/src/eu/kanade/tachiyomi/animeextension/es/animeonlineninja/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.animeonlineninja.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/doramasyt/build.gradle b/src/es/doramasyt/build.gradle index 02c6e500f..638d15dd2 100644 --- a/src/es/doramasyt/build.gradle +++ b/src/es/doramasyt/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-okru-extractor')) } diff --git a/src/es/doramasyt/src/eu/kanade/tachiyomi/animeextension/es/doramasyt/Doramasyt.kt b/src/es/doramasyt/src/eu/kanade/tachiyomi/animeextension/es/doramasyt/Doramasyt.kt index 96d0d64da..2b7809a43 100644 --- a/src/es/doramasyt/src/eu/kanade/tachiyomi/animeextension/es/doramasyt/Doramasyt.kt +++ b/src/es/doramasyt/src/eu/kanade/tachiyomi/animeextension/es/doramasyt/Doramasyt.kt @@ -7,7 +7,6 @@ import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.doramasyt.extractors.FembedExtractor import eu.kanade.tachiyomi.animeextension.es.doramasyt.extractors.SolidFilesExtractor -import eu.kanade.tachiyomi.animeextension.es.doramasyt.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.es.doramasyt.extractors.UqloadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter @@ -17,6 +16,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource import eu.kanade.tachiyomi.lib.okruextractor.OkruExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/es/doramasyt/src/eu/kanade/tachiyomi/animeextension/es/doramasyt/extractors/StreamTapeExtractor.kt b/src/es/doramasyt/src/eu/kanade/tachiyomi/animeextension/es/doramasyt/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 49f1e1f63..000000000 --- a/src/es/doramasyt/src/eu/kanade/tachiyomi/animeextension/es/doramasyt/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.doramasyt.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/jkhentai/build.gradle b/src/es/jkhentai/build.gradle index c9a011b6b..acf028a69 100644 --- a/src/es/jkhentai/build.gradle +++ b/src/es/jkhentai/build.gradle @@ -10,4 +10,9 @@ ext { containsNsfw = true } +dependencies { + implementation(project(':lib-streamtape-extractor')) +} + + apply from: "$rootDir/common.gradle" diff --git a/src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/Jkhentai.kt b/src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/Jkhentai.kt index c09b590ae..fe797bee5 100644 --- a/src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/Jkhentai.kt +++ b/src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/Jkhentai.kt @@ -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.es.jkhentai.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.es.jkhentai.extractors.YourUploadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter @@ -13,6 +12,7 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/extractors/StreamTapeExtractor.kt b/src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 34b6a2af8..000000000 --- a/src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.jkhentai.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/pelisflix/build.gradle b/src/es/pelisflix/build.gradle index 35d352f96..e276efe7e 100644 --- a/src/es/pelisflix/build.gradle +++ b/src/es/pelisflix/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/es/pelisflix/src/eu/kanade/tachiyomi/animeextension/es/pelisflix/PelisflixFactory.kt b/src/es/pelisflix/src/eu/kanade/tachiyomi/animeextension/es/pelisflix/PelisflixFactory.kt index c3b42454b..d972df996 100644 --- a/src/es/pelisflix/src/eu/kanade/tachiyomi/animeextension/es/pelisflix/PelisflixFactory.kt +++ b/src/es/pelisflix/src/eu/kanade/tachiyomi/animeextension/es/pelisflix/PelisflixFactory.kt @@ -5,15 +5,15 @@ import android.content.SharedPreferences import android.util.Log import androidx.preference.ListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.animeextension.es.pelisflix.extractors.FembedExtractor -import eu.kanade.tachiyomi.animeextension.es.pelisflix.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.AnimeSource import eu.kanade.tachiyomi.animesource.AnimeSourceFactory import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.MediaType.Companion.toMediaType diff --git a/src/es/pelisflix/src/eu/kanade/tachiyomi/animeextension/es/pelisflix/extractors/StreamTapeExtractor.kt b/src/es/pelisflix/src/eu/kanade/tachiyomi/animeextension/es/pelisflix/extractors/StreamTapeExtractor.kt deleted file mode 100644 index feea0b4a2..000000000 --- a/src/es/pelisflix/src/eu/kanade/tachiyomi/animeextension/es/pelisflix/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.es.pelisflix.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/es/pelisplushd/build.gradle b/src/es/pelisplushd/build.gradle index 6822cb1ef..c51b32641 100644 --- a/src/es/pelisplushd/build.gradle +++ b/src/es/pelisplushd/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/Pelisplushd.kt b/src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/Pelisplushd.kt index 0ab10fabc..554439ba9 100644 --- a/src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/Pelisplushd.kt +++ b/src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/Pelisplushd.kt @@ -6,7 +6,6 @@ import android.util.Base64 import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors.FembedExtractor -import eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.es.pelisplushd.extractors.YourUploadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter @@ -17,6 +16,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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.asJsoup diff --git a/src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/extractors/StreamTapeExtractor.kt b/src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/extractors/StreamTapeExtractor.kt deleted file mode 100644 index e46704279..000000000 --- a/src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,23 +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.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String = "StreamTape"): Video? { - return try { - val linkRegex = "https?://(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}/[a-z]/".toRegex() - val mainUrl = "https://streamtape.com/e/${ url.replace(linkRegex, "") }" - val document = client.newCall(GET(mainUrl)).execute().asJsoup() - val script = document.selectFirst("script:containsData(document.getElementById('robotlink'))") - ?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '//") - ?: return null - val videoUrl = "https://" + script.substringBefore("'+ ('xcd") + script.substringAfter("+ ('xcd").substringBefore("')") - Video(videoUrl, quality, videoUrl, headers = null) - } catch (i: Exception) { - null - } - } -} diff --git a/src/fr/nekosama/build.gradle b/src/fr/nekosama/build.gradle index 8f41199eb..73e3b9d28 100644 --- a/src/fr/nekosama/build.gradle +++ b/src/fr/nekosama/build.gradle @@ -11,4 +11,9 @@ ext { containsNsfw = false } +dependencies { + implementation(project(':lib-streamtape-extractor')) +} + + apply from: "$rootDir/common.gradle" diff --git a/src/fr/nekosama/src/eu/kanade/tachiyomi/animeextension/fr/nekosama/NekoSama.kt b/src/fr/nekosama/src/eu/kanade/tachiyomi/animeextension/fr/nekosama/NekoSama.kt index 5ff53b141..f43fb5f23 100644 --- a/src/fr/nekosama/src/eu/kanade/tachiyomi/animeextension/fr/nekosama/NekoSama.kt +++ b/src/fr/nekosama/src/eu/kanade/tachiyomi/animeextension/fr/nekosama/NekoSama.kt @@ -5,7 +5,6 @@ import android.content.SharedPreferences import android.util.Base64 import androidx.preference.ListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.animeextension.fr.nekosama.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -14,6 +13,7 @@ import eu.kanade.tachiyomi.animesource.model.SAnime import eu.kanade.tachiyomi.animesource.model.SEpisode import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import kotlinx.serialization.Serializable diff --git a/src/fr/nekosama/src/eu/kanade/tachiyomi/animeextension/fr/nekosama/extractors/StreamTapeExtractor.kt b/src/fr/nekosama/src/eu/kanade/tachiyomi/animeextension/fr/nekosama/extractors/StreamTapeExtractor.kt deleted file mode 100644 index 2ef2692c5..000000000 --- a/src/fr/nekosama/src/eu/kanade/tachiyomi/animeextension/fr/nekosama/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,18 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.fr.nekosama.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, quality: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - return Video(url, quality, videoUrl) - } -} diff --git a/src/it/animeworld/build.gradle b/src/it/animeworld/build.gradle index 95519c64f..4fa6e75c6 100644 --- a/src/it/animeworld/build.gradle +++ b/src/it/animeworld/build.gradle @@ -10,6 +10,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-streamsb-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt b/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt index e14d5dcde..f1cb00b83 100644 --- a/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt +++ b/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/ANIMEWORLD.kt @@ -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.it.animeworld.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilter import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -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.streamsbextractor.StreamSBExtractor +import eu.kanade.tachiyomi.lib.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.Headers diff --git a/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/extractors/StreamTapeExtractor.kt b/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/extractors/StreamTapeExtractor.kt deleted file mode 100644 index dabcbe564..000000000 --- a/src/it/animeworld/src/eu/kanade/tachiyomi/animeextension/it/animeworld/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.it.animeworld.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -} diff --git a/src/pt/animesvision/build.gradle b/src/pt/animesvision/build.gradle index ddf6cd55e..b8e8a282b 100644 --- a/src/pt/animesvision/build.gradle +++ b/src/pt/animesvision/build.gradle @@ -11,6 +11,7 @@ ext { } dependencies { + implementation(project(':lib-streamtape-extractor')) implementation(project(':lib-dood-extractor')) } diff --git a/src/pt/animesvision/src/eu/kanade/tachiyomi/animeextension/pt/animesvision/AnimesVision.kt b/src/pt/animesvision/src/eu/kanade/tachiyomi/animeextension/pt/animesvision/AnimesVision.kt index e407e3592..b761bb931 100644 --- a/src/pt/animesvision/src/eu/kanade/tachiyomi/animeextension/pt/animesvision/AnimesVision.kt +++ b/src/pt/animesvision/src/eu/kanade/tachiyomi/animeextension/pt/animesvision/AnimesVision.kt @@ -8,7 +8,6 @@ import eu.kanade.tachiyomi.animeextension.pt.animesvision.dto.AVResponseDto import eu.kanade.tachiyomi.animeextension.pt.animesvision.dto.PayloadData import eu.kanade.tachiyomi.animeextension.pt.animesvision.dto.PayloadItem import eu.kanade.tachiyomi.animeextension.pt.animesvision.extractors.GlobalVisionExtractor -import eu.kanade.tachiyomi.animeextension.pt.animesvision.extractors.StreamTapeExtractor import eu.kanade.tachiyomi.animeextension.pt.animesvision.extractors.VisionExtractor import eu.kanade.tachiyomi.animeextension.pt.animesvision.extractors.VoeExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource @@ -19,6 +18,7 @@ import eu.kanade.tachiyomi.animesource.model.SEpisode 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.streamtapeextractor.StreamTapeExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.asObservableSuccess diff --git a/src/pt/animesvision/src/eu/kanade/tachiyomi/animeextension/pt/animesvision/extractors/StreamTapeExtractor.kt b/src/pt/animesvision/src/eu/kanade/tachiyomi/animeextension/pt/animesvision/extractors/StreamTapeExtractor.kt deleted file mode 100644 index bbb7a6251..000000000 --- a/src/pt/animesvision/src/eu/kanade/tachiyomi/animeextension/pt/animesvision/extractors/StreamTapeExtractor.kt +++ /dev/null @@ -1,19 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.pt.animesvision.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.OkHttpClient - -class StreamTapeExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String): Video? { - val document = client.newCall(GET(url)).execute().asJsoup() - val script = document.select("script:containsData(document.getElementById('robotlink'))") - .firstOrNull()?.data()?.substringAfter("document.getElementById('robotlink').innerHTML = '") - ?: return null - val videoUrl = "https:" + script.substringBefore("'") + - script.substringAfter("+ ('xcd").substringBefore("'") - val quality = "StreamTape" - return Video(url, quality, videoUrl) - } -}