From 28a486ad788e161ad478516fbafaa229f9712fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Franti=C5=A1ek=20Straka?= Date: Thu, 6 Feb 2025 19:12:05 +0100 Subject: [PATCH 1/4] fix(en/aniplay): fixed dub with subtitles showing as softdub --- .../tachiyomi/animeextension/en/aniplay/AniPlay.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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 fcb1baf2..7a5f14bd 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 @@ -270,10 +270,15 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { ?.map { Track(it.url ?: throw Exception("episodeData.response.subtitles.url is null ($it)"), it.lang ?: "Unk") } ?: emptyList() - val serverName = getServerName(episodeData.source) - val typeName = when { - subtitles.isNotEmpty() -> "SoftSub" - else -> getTypeName(episodeData.language) + var serverName = getServerName(episodeData.source) + if (serverName == SERVER_UNKNOWN) { + serverName = episodeData.source.substring(0, 69) + "!" + } + var typeName = getTypeName(episodeData.language) + if (typeName == "Sub" && subtitles.isNotEmpty()) { + typeName = "SoftSub" + } else if (serverName == "Yuki" && typeName == "Dub" && subtitles.isNotEmpty()) { + typeName = "Dubtitles" } try { -- 2.47.2 From 98f41c6362015ce77c8422fbacfb2379c965f817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Franti=C5=A1ek=20Straka?= Date: Thu, 6 Feb 2025 19:13:03 +0100 Subject: [PATCH 2/4] fix(en/aniplay): new server added "maze" --- .../animeextension/en/aniplay/AniPlay.kt | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) 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 7a5f14bd..078d8583 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 @@ -456,7 +456,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { private fun getServerName(value: String): String { val index = PREF_SERVER_ENTRY_VALUES.indexOf(value) if (index == -1) { - return "Other" + return SERVER_UNKNOWN } return PREF_SERVER_ENTRIES[index] } @@ -464,7 +464,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { private fun getTypeName(value: String): String { val index = PREF_TYPE_ENTRY_VALUES.indexOf(value.lowercase()) if (index == -1) { - return "Other" + return TYPE_UNKNOWN } return PREF_TYPE_ENTRIES[index] } @@ -482,14 +482,15 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { companion object { private const val PREF_DOMAIN_KEY = "domain" - private val PREF_DOMAIN_ENTRIES = arrayOf("aniplaynow.live (default)", "aniplay.lol (backup)") + private val PREF_DOMAIN_ENTRIES = arrayOf("aniplaynow.live (default)", "aniplay.lol (backup/experimental)") private val PREF_DOMAIN_ENTRY_VALUES = arrayOf("aniplaynow.live", "aniplay.lol") private const val PREF_DOMAIN_DEFAULT = "aniplaynow.live" private const val PREF_SERVER_KEY = "server" - private val PREF_SERVER_ENTRIES = arrayOf("Kuro", "Anya", "Yuki", "Pahe") - private val PREF_SERVER_ENTRY_VALUES = arrayOf("kuro", "anya", "yuki", "pahe") - private const val PREF_SERVER_DEFAULT = "kuro" + private val PREF_SERVER_ENTRIES = arrayOf("Maze", "Yuki", "Pahe", "Kuro") + private val PREF_SERVER_ENTRY_VALUES = arrayOf("maze", "yuki", "pahe", "kuro") + private const val PREF_SERVER_DEFAULT = "yuki" + private const val SERVER_UNKNOWN = "Other" private const val PREF_QUALITY_KEY = "quality" private val PREF_QUALITY_ENTRIES = arrayOf("1080p", "720p", "480p", "360p") @@ -497,9 +498,10 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { private const val PREF_QUALITY_DEFAULT = "1080" private const val PREF_TYPE_KEY = "type" - private val PREF_TYPE_ENTRIES = arrayOf("Sub", "SoftSub", "Dub") - private val PREF_TYPE_ENTRY_VALUES = arrayOf("sub", "softsub", "dub") - private const val PREF_TYPE_DEFAULT = "sub" + private val PREF_TYPE_ENTRIES = arrayOf("Sub", "SoftSub", "Dub", "Dubtitles") + private val PREF_TYPE_ENTRY_VALUES = arrayOf("sub", "softsub", "dub", "dubtitles") + private const val PREF_TYPE_DEFAULT = "softsub" + private const val TYPE_UNKNOWN = "Other" private const val PREF_TITLE_LANGUAGE_KEY = "title_language" private val PREF_TITLE_LANGUAGE_ENTRIES = arrayOf("Romaji", "English", "Native") -- 2.47.2 From b8929bbae73c0f00af53a7bdf7b038a554cbc707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Franti=C5=A1ek=20Straka?= Date: Thu, 6 Feb 2025 19:13:37 +0100 Subject: [PATCH 3/4] fix(en/aniplay): implemented proxy mechanic --- .../tachiyomi/animeextension/en/aniplay/AniPlay.kt | 12 ++++++++++++ .../animeextension/en/aniplay/AniPlayDto.kt | 1 + 2 files changed, 13 insertions(+) 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 078d8583..cb2d4c69 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 @@ -282,6 +282,17 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { } try { + if (episodeData.response.proxy == true) { + var proxyUrl = "$PROXY_URL/fetch?url=${defaultSource.url}" + if (episodeData.response.headers != null && episodeData.response.headers.Referer?.startsWith("https://") == true) { + proxyUrl += "&ref=${episodeData.response.headers.Referer}" + } + return playlistUtils.extractFromHls( + playlistUrl = proxyUrl, + videoNameGen = { quality -> "$serverName - $quality - $typeName" }, + subtitleList = subtitles, + ) + } if (episodeData.response.headers != null && episodeData.response.headers.Referer?.startsWith("https://") == true) { return playlistUtils.extractFromHls( playlistUrl = defaultSource.url, @@ -525,6 +536,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { "NEXT_ACTION_SOURCES_LIST" to "8a76af451978c817dde2364326a5e4e45eb43db1", ), ) + private const val PROXY_URL = "https://aniplay-cors.yqizw7.easypanel.host" private val DATE_FORMATTER = SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH) } diff --git a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt index e75eb504..4f909466 100644 --- a/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt +++ b/src/en/aniplay/src/eu/kanade/tachiyomi/animeextension/en/aniplay/AniPlayDto.kt @@ -37,6 +37,7 @@ data class VideoSourceResponse( val outro: Timestamp?, val subtitles: List?, val headers: Headers?, + val proxy: Boolean?, ) { @Serializable data class Source( -- 2.47.2 From 11f0f7b6ee5df48085400f8a8b4d74bab2d43793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Franti=C5=A1ek=20Straka?= Date: Thu, 6 Feb 2025 19:13:50 +0100 Subject: [PATCH 4/4] fix(en/aniplay): version bump --- src/en/aniplay/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/en/aniplay/build.gradle b/src/en/aniplay/build.gradle index d3638755..d0f6531a 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 = 9 + overrideVersionCode = 10 } apply from: "$rootDir/common.gradle" -- 2.47.2