From a64dae4b237ecd3e5bfdc37358835ae402c192e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Franti=C5=A1ek=20Straka?= <71689727+JosefFStraka@users.noreply.github.com> Date: Tue, 25 Mar 2025 15:14:01 +0000 Subject: [PATCH 1/2] fix(en/Aniplay): new headers (again) (#854) * version bump * new headers --- src/en/aniplay/build.gradle | 2 +- .../kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/en/aniplay/build.gradle b/src/en/aniplay/build.gradle index 3bb7ab5d..454a3448 100644 --- a/src/en/aniplay/build.gradle +++ b/src/en/aniplay/build.gradle @@ -2,7 +2,7 @@ ext { extName = 'AniPlay' extClass = '.AniPlay' themePkg = 'anilist' - overrideVersionCode = 13 + overrideVersionCode = 14 } apply from: "$rootDir/common.gradle" diff --git a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt index ebf80fed..75e355e9 100644 --- a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt +++ b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlay.kt @@ -536,12 +536,12 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { private val HEADER_NEXT_ACTION = mapOf( PREF_DOMAIN_ENTRY_VALUES[0] to mapOf( - "NEXT_ACTION_EPISODE_LIST" to "7f39ceba984fb47350526469339d4fbaa3ec5caa99", - "NEXT_ACTION_SOURCES_LIST" to "7f1d4204bc38dac69a6a066b167c7b967bf022a03b", + "NEXT_ACTION_EPISODE_LIST" to "7f245562e54103f7dc13b3f89743fe31492ae34d6d", + "NEXT_ACTION_SOURCES_LIST" to "7fa64b02d2e6dc6a72c31b915844cb42a729b5e575", ), PREF_DOMAIN_ENTRY_VALUES[1] to mapOf( - "NEXT_ACTION_EPISODE_LIST" to "7f820a70d776d5287c17ce6f39dc10b412994568b6", - "NEXT_ACTION_SOURCES_LIST" to "7f5d0fab51d7f06ded42a7a4c7830c48e48ab96b73", + "NEXT_ACTION_EPISODE_LIST" to "7f4b13f495ada236e47ada7923680d8264f2601e45", + "NEXT_ACTION_SOURCES_LIST" to "7f41e61d8806a49322bbe4746ff28a39e4dc098b6b", ), ) private const val PROXY_URL = "https://aniplay-cors.yqizw7.easypanel.host" -- 2.47.2 From 4170a8bcee5c1475ff595216ce29ffe077e78f95 Mon Sep 17 00:00:00 2001 From: Khaled Date: Wed, 26 Mar 2025 00:04:27 +0600 Subject: [PATCH 2/2] [AnimeOwl] fix: Video list + Episode list --- src/en/animeowl/build.gradle | 2 +- .../animeextension/en/animeowl/AnimeOwl.kt | 12 +++---- .../animeextension/en/animeowl/AnimeOwlDto.kt | 7 ++-- .../en/animeowl/extractors/OwlExtractor.kt | 33 ++++++++++++------- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/en/animeowl/build.gradle b/src/en/animeowl/build.gradle index e5849d46..40b4fa1d 100644 --- a/src/en/animeowl/build.gradle +++ b/src/en/animeowl/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'AnimeOwl' extClass = '.AnimeOwl' - extVersionCode = 22 + extVersionCode = 23 } apply from: "$rootDir/common.gradle" diff --git a/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwl.kt b/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwl.kt index b53606e8..3b061288 100644 --- a/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwl.kt +++ b/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwl.kt @@ -129,20 +129,20 @@ class AnimeOwl : ConfigurableAnimeSource, ParsedAnimeHttpSource() { val document = response.asJsoup() val sub = document.select("#anime-cover-sub-content .episode-node").mapIndexed { idx, it -> EpisodeResponse.Episode( - id = it.text().toDouble(), + id = it.attr("title").toDoubleOrNull(), episodeIndex = idx.toString(), - name = it.text(), + name = it.attr("title"), lang = "Sub", - href = it.attr("abs:href"), + href = it.absUrl("href"), ) } val dub = document.select("#anime-cover-dub-content .episode-node").mapIndexed { idx, it -> EpisodeResponse.Episode( - id = it.text().toDouble(), + id = it.attr("title").toDoubleOrNull(), episodeIndex = idx.toString(), - name = it.text(), + name = it.attr("title"), lang = "Dub", - href = it.attr("abs:href"), + href = it.absUrl("href"), ) } diff --git a/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwlDto.kt b/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwlDto.kt index 0e39f027..66ae5673 100644 --- a/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwlDto.kt +++ b/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/AnimeOwlDto.kt @@ -53,12 +53,13 @@ data class Link( @Serializable data class OwlServers( - val kaido: String? = null, - val luffy: String? = null, - val zoro: String? = null, + val kaido: List? = null, + val luffy: List? = null, + val zoro: List? = null, ) @Serializable data class Stream( val url: String, + val resolution: String?, ) diff --git a/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/extractors/OwlExtractor.kt b/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/extractors/OwlExtractor.kt index e3fa8ef1..3d4c22a9 100644 --- a/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/extractors/OwlExtractor.kt +++ b/src/en/animeowl/src/eu/kanade/tachiyomi/animeextension/en/animeowl/extractors/OwlExtractor.kt @@ -45,23 +45,32 @@ class OwlExtractor(private val client: OkHttpClient, private val baseUrl: String coroutineScope { val lufDeferred = async { servers.luffy?.let { luffy -> - noRedirectClient.newCall(GET("${luffy}$jwt")).execute() - .use { it.headers["Location"] } - ?.let { videoList.add(Video(it, "${link.lang} Luffy:1080p", it)) } + luffy.forEach { stream -> + noRedirectClient.newCall(GET("${stream.url}$jwt")).execute() + .use { it.headers["Location"] }?.let { + videoList.add( + Video(it, "${link.lang} Luffy:${stream.resolution}", it), + ) + } + } } } val kaiDeferred = async { - servers.kaido?.let { - videoList.addAll( - getHLS("${it}$jwt", "Kaido", link.lang), - ) + servers.kaido?.let { kaido -> + kaido.forEach { stream -> + videoList.addAll( + getHLS("${stream.url}$jwt", "Kaido", link.lang), + ) + } } } val zorDeferred = async { - servers.zoro?.let { - videoList.addAll( - getHLS("${it}$jwt", "Boa", link.lang), - ) + servers.zoro?.let { zoro -> + zoro.forEach { stream -> + videoList.addAll( + getHLS("${stream.url}$jwt", "Boa", link.lang), + ) + } } } @@ -71,7 +80,7 @@ class OwlExtractor(private val client: OkHttpClient, private val baseUrl: String } private fun getHLS(url: String, server: String, lang: String): List