From 135be1df02eb3fedd8b037f00fe2f16f5b0417f4 Mon Sep 17 00:00:00 2001 From: Claudemirovsky <63046606+Claudemirovsky@users.noreply.github.com> Date: Sun, 26 Feb 2023 20:45:53 -0300 Subject: [PATCH] Make extensions use YourUploadExtractor lib (#1336) --- .../all/animeonsen/AOAPIInterceptor.kt | 2 +- .../extractors/UQLoadExtractor.kt | 4 +- .../animeextension/ar/witanime/WitAnime.kt | 2 +- .../de/animeloads/AnimeLoads.kt | 2 +- .../de/aniworld/JsInterceptor.kt | 2 +- .../animeextension/de/fireanime/FireAnime.kt | 2 +- src/en/kissanime/build.gradle | 1 + .../animeextension/en/kissanime/KissAnime.kt | 21 +++-- .../extractors/YourUploadExtractor.kt | 28 ------ .../vidembed/extractors/MixDropExtractor.kt | 4 +- src/es/animeflv/build.gradle | 1 + .../animeextension/es/animeflv/AnimeFlv.kt | 85 +++++++------------ .../extractors/YourUploadExtractor.kt | 28 ------ src/es/cuevana/build.gradle | 1 + .../animeextension/es/cuevana/Cuevana.kt | 29 ++++--- .../cuevana/extractors/YourUploadExtractor.kt | 28 ------ src/es/jkhentai/build.gradle | 1 + .../animeextension/es/jkhentai/Jkhentai.kt | 34 ++++---- .../extractors/YourUploadExtractor.kt | 28 ------ src/es/latanime/build.gradle | 1 + .../animeextension/es/latanime/Latanime.kt | 21 +++-- .../extractors/YourUploadExtractor.kt | 28 ------ src/es/legionanime/build.gradle | 1 + .../es/legionanime/LegionAnime.kt | 34 +++++--- .../extractors/YourUploadExtractor.kt | 28 ------ .../es/monoschinos/MonosChinos.kt | 25 +++--- src/es/pelisplushd/build.gradle | 1 + .../es/pelisplushd/Pelisplushd.kt | 15 ++-- .../extractors/YourUploadExtractor.kt | 28 ------ src/es/tioanime/build.gradle | 1 + .../animeextension/es/tioanimeh/TioanimeH.kt | 17 ++-- .../es/tioanimeh/TioanimeHFactory.kt | 8 +- .../extractors/YourUploadExtractor.kt | 28 ------ src/id/kuronime/build.gradle | 1 + .../animeextension/id/kuronime/Kuronime.kt | 9 +- .../extractors/YourUploadExtractor.kt | 28 ------ src/id/neonime/build.gradle | 1 + .../animeextension/id/neonime/NeoNime.kt | 18 ++-- .../neonime/extractors/YourUploadExtractor.kt | 28 ------ 39 files changed, 170 insertions(+), 454 deletions(-) delete mode 100644 src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/extractors/YourUploadExtractor.kt delete mode 100644 src/es/animeflv/src/eu/kanade/tachiyomi/animeextension/es/animeflv/extractors/YourUploadExtractor.kt delete mode 100644 src/es/cuevana/src/eu/kanade/tachiyomi/animeextension/es/cuevana/extractors/YourUploadExtractor.kt delete mode 100644 src/es/jkhentai/src/eu/kanade/tachiyomi/animeextension/es/jkhentai/extractors/YourUploadExtractor.kt delete mode 100644 src/es/latanime/src/eu/kanade/tachiyomi/animeextension/es/latanime/extractors/YourUploadExtractor.kt delete mode 100644 src/es/legionanime/src/eu/kanade/tachiyomi/animeextension/es/legionanime/extractors/YourUploadExtractor.kt delete mode 100644 src/es/pelisplushd/src/eu/kanade/tachiyomi/animeextension/es/pelisplushd/extractors/YourUploadExtractor.kt delete mode 100644 src/es/tioanime/src/eu/kanade/tachiyomi/animeextension/es/tioanimeh/extractors/YourUploadExtractor.kt delete mode 100644 src/id/kuronime/src/eu/kanade/tachiyomi/animeextension/id/kuronime/extractors/YourUploadExtractor.kt delete mode 100644 src/id/neonime/src/eu/kanade/tachiyomi/animeextension/id/neonime/extractors/YourUploadExtractor.kt diff --git a/src/all/animeonsen/src/eu/kanade/tachiyomi/animeextension/all/animeonsen/AOAPIInterceptor.kt b/src/all/animeonsen/src/eu/kanade/tachiyomi/animeextension/all/animeonsen/AOAPIInterceptor.kt index e6cdbaa96..23e36f8c6 100644 --- a/src/all/animeonsen/src/eu/kanade/tachiyomi/animeextension/all/animeonsen/AOAPIInterceptor.kt +++ b/src/all/animeonsen/src/eu/kanade/tachiyomi/animeextension/all/animeonsen/AOAPIInterceptor.kt @@ -39,7 +39,7 @@ class AOAPIInterceptor(client: OkHttpClient) : Interceptor { val tokenObject = Json.decodeFromString(tokenResponse) tokenObject["access_token"]!!.jsonPrimitive.content - } catch(_: Throwable) { + } catch (_: Throwable) { "" } } diff --git a/src/ar/tuktukcinema/src/eu/kanade/tachiyomi/animeextension/ar/tuktukcinema/extractors/UQLoadExtractor.kt b/src/ar/tuktukcinema/src/eu/kanade/tachiyomi/animeextension/ar/tuktukcinema/extractors/UQLoadExtractor.kt index 900b88ce1..b211015a9 100644 --- a/src/ar/tuktukcinema/src/eu/kanade/tachiyomi/animeextension/ar/tuktukcinema/extractors/UQLoadExtractor.kt +++ b/src/ar/tuktukcinema/src/eu/kanade/tachiyomi/animeextension/ar/tuktukcinema/extractors/UQLoadExtractor.kt @@ -12,7 +12,7 @@ class UQLoadExtractor(private val client: OkHttpClient) { val videoUrl = check.substringAfter("sources: [\"").substringBefore("\"") return if (check.contains("sources")) Video(url, quality, videoUrl) - else - null + else + null } } diff --git a/src/ar/witanime/src/eu/kanade/tachiyomi/animeextension/ar/witanime/WitAnime.kt b/src/ar/witanime/src/eu/kanade/tachiyomi/animeextension/ar/witanime/WitAnime.kt index 8cc25bcfb..5258370b8 100755 --- a/src/ar/witanime/src/eu/kanade/tachiyomi/animeextension/ar/witanime/WitAnime.kt +++ b/src/ar/witanime/src/eu/kanade/tachiyomi/animeextension/ar/witanime/WitAnime.kt @@ -13,8 +13,8 @@ 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.streamsbextractor.StreamSBExtractor import eu.kanade.tachiyomi.lib.fembedextractor.FembedExtractor +import eu.kanade.tachiyomi.lib.streamsbextractor.StreamSBExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.util.asJsoup import okhttp3.OkHttpClient diff --git a/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt b/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt index 12846b222..a4734a19e 100644 --- a/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt +++ b/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt @@ -40,7 +40,7 @@ class AnimeLoads : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override val lang = "de" override val supportsLatest = false - + override val id: Long = 655155856096L override val client: OkHttpClient = network.client.newBuilder() diff --git a/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/JsInterceptor.kt b/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/JsInterceptor.kt index 09e9da167..e0922d614 100644 --- a/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/JsInterceptor.kt +++ b/src/de/aniworld/src/eu/kanade/tachiyomi/animeextension/de/aniworld/JsInterceptor.kt @@ -327,7 +327,7 @@ class JsInterceptor : Interceptor { webView?.loadUrl(origRequestUrl, headers) } } - + latch.await(60, TimeUnit.SECONDS) handler.post { diff --git a/src/de/fireanime/src/eu/kanade/tachiyomi/animeextension/de/fireanime/FireAnime.kt b/src/de/fireanime/src/eu/kanade/tachiyomi/animeextension/de/fireanime/FireAnime.kt index fe5062e2b..493310cfa 100644 --- a/src/de/fireanime/src/eu/kanade/tachiyomi/animeextension/de/fireanime/FireAnime.kt +++ b/src/de/fireanime/src/eu/kanade/tachiyomi/animeextension/de/fireanime/FireAnime.kt @@ -14,7 +14,6 @@ import eu.kanade.tachiyomi.animeextension.de.fireanime.dto.EpisodeListingWrapper import eu.kanade.tachiyomi.animeextension.de.fireanime.dto.EpisodeSourcesDto import eu.kanade.tachiyomi.animeextension.de.fireanime.dto.HosterSourceDto import eu.kanade.tachiyomi.animeextension.de.fireanime.dto.VideoLinkDto -import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.animeextension.de.fireanime.extractors.FireCdnExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList @@ -23,6 +22,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.AnimeHttpSource +import eu.kanade.tachiyomi.lib.doodextractor.DoodExtractor import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.network.interceptor.rateLimit diff --git a/src/en/kissanime/build.gradle b/src/en/kissanime/build.gradle index d75ee6386..58c59261b 100644 --- a/src/en/kissanime/build.gradle +++ b/src/en/kissanime/build.gradle @@ -11,6 +11,7 @@ ext { } dependencies { + implementation(project(':lib-yourupload-extractor')) compileOnly libs.bundles.coroutines implementation(project(':lib-fembed-extractor')) implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" diff --git a/src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/KissAnime.kt b/src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/KissAnime.kt index d7e0517ce..d559eaa18 100644 --- a/src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/KissAnime.kt +++ b/src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/KissAnime.kt @@ -7,7 +7,6 @@ import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.animeextension.en.kissanime.extractors.DailymotionExtractor import eu.kanade.tachiyomi.animeextension.en.kissanime.extractors.Mp4uploadExtractor import eu.kanade.tachiyomi.animeextension.en.kissanime.extractors.VodstreamExtractor -import eu.kanade.tachiyomi.animeextension.en.kissanime.extractors.YourUploadExtractor import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource import eu.kanade.tachiyomi.animesource.model.AnimeFilterList import eu.kanade.tachiyomi.animesource.model.AnimesPage @@ -16,6 +15,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.fembedextractor.FembedExtractor +import eu.kanade.tachiyomi.lib.youruploadextractor.YourUploadExtractor import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.asObservableSuccess @@ -179,7 +179,7 @@ class KissAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val episodeId = (baseUrl + episode.url).toHttpUrl().queryParameter("id")!! var document = client.newCall( - GET(baseUrl + episode.url, headers = headers) + GET(baseUrl + episode.url, headers = headers), ).execute().asJsoup() var newDocument = document @@ -188,7 +188,7 @@ class KissAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { if (!server.hasAttr("selected")) { newDocument = client.newCall( - GET(url, headers = headers) + GET(url, headers = headers), ).execute().asJsoup() } @@ -202,7 +202,7 @@ class KissAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { "Origin", baseUrl, "Referer", url, "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0", - "X-Requested-With", "XMLHttpRequest" + "X-Requested-With", "XMLHttpRequest", ) val getIframeBody = "episode_id=$episodeId&ctk=$ctk".toRequestBody("application/x-www-form-urlencoded".toMediaType()) @@ -210,8 +210,8 @@ class KissAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val iframe = json.decodeFromString( client.newCall( - POST("$baseUrl/ajax/anime/load_episodes_v2?s=$serverName", body = getIframeBody, headers = getIframeHeaders) - ).execute().body!!.string() + POST("$baseUrl/ajax/anime/load_episodes_v2?s=$serverName", body = getIframeBody, headers = getIframeHeaders), + ).execute().body!!.string(), ) var iframeUrl = Jsoup.parse(iframe.value).selectFirst("iframe").attr("src") @@ -258,7 +258,6 @@ class KissAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { FembedExtractor(client).videosFromUrl(newUrl, prefix = "${server.name} - ") } url.contains("yourupload") -> { - val headers = headers.newBuilder().add("referer", "https://www.yourupload.com/").build() YourUploadExtractor(client).videoFromUrl(url, headers = headers, name = server.name) } url.contains("mp4upload") -> { @@ -275,7 +274,7 @@ class KissAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { else -> null } }.getOrNull() - }.filterNotNull().flatten() + }.filterNotNull().flatten(), ) return Observable.just(videoList.sort()) @@ -293,19 +292,19 @@ class KissAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val quality = preferences.getString("preferred_quality", "1080")!! return this.sortedWith( - compareBy { it.quality.contains(quality) } + compareBy { it.quality.contains(quality) }, ).reversed() } data class Server( val name: String, val url: String, - val password: String? = null + val password: String? = null, ) @Serializable data class IframeResponse( - val value: String + val value: String, ) private fun parseDate(dateStr: String): Long { diff --git a/src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/extractors/YourUploadExtractor.kt b/src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/extractors/YourUploadExtractor.kt deleted file mode 100644 index ad4c95b51..000000000 --- a/src/en/kissanime/src/eu/kanade/tachiyomi/animeextension/en/kissanime/extractors/YourUploadExtractor.kt +++ /dev/null @@ -1,28 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.en.kissanime.extractors - -import eu.kanade.tachiyomi.animesource.model.Video -import eu.kanade.tachiyomi.network.GET -import eu.kanade.tachiyomi.util.asJsoup -import okhttp3.Headers -import okhttp3.OkHttpClient - -class YourUploadExtractor(private val client: OkHttpClient) { - fun videoFromUrl(url: String, headers: Headers, name: String): List