From f5ad79e79a6f0d10261817cec4d78effdf4bf537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20Franti=C5=A1ek=20Straka?= Date: Thu, 31 Oct 2024 20:47:32 +0100 Subject: [PATCH] fix(en/AniPlay): Added idMal to request --- .../animeextension/en/aniplay/AniPlay.kt | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 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 d8ba1518..69c45891 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 @@ -15,6 +15,7 @@ import eu.kanade.tachiyomi.animesource.model.Track import eu.kanade.tachiyomi.animesource.model.Video import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils import eu.kanade.tachiyomi.multisrc.anilist.AniListAnimeHttpSource +import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.util.parallelFlatMapBlocking import eu.kanade.tachiyomi.util.parseAs @@ -90,6 +91,22 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { val episodeListUrl = response.request.url val animeId = episodeListUrl.pathSegments[2] + val responsePage = client.newCall(GET("$baseUrl/anime/watch/$animeId")).execute() + val responsePageString = responsePage.body.string() + var idMal: Number? = null + val idMalIndex = responsePageString.indexOf("\\\"idMal\\\":") + if (idMalIndex != -1) { + val startIndex = idMalIndex + "\\\"idMal\\\":".length + val endIndex = responsePageString.indexOf(',', startIndex) + if (endIndex != -1) { + idMal = responsePageString.substring(startIndex, endIndex).toIntOrNull() + } + } + if (idMal == null) { + Log.e("AniPlay", "idMal not found - responsePageString: $responsePageString") + throw Exception("idMal not found") + } + val responseString = response.body.string() val episodesArrayString = responseString.split("1:").last() @@ -127,6 +144,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { .addQueryParameter("id", animeId) .addQueryParameter("ep", episodeNumber.toString()) .addQueryParameter("extras", episodeExtraString) + .addQueryParameter("idMal", idMal.toString()) .build() val name = parseEpisodeName(episodeNumber.toString(), episode.title) @@ -156,7 +174,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource { override suspend fun getVideoList(episode: SEpisode): List