fix(en/AniPlay): Added idMal to request
This commit is contained in:
parent
37cb8174d5
commit
f5ad79e79a
1 changed files with 20 additions and 3 deletions
|
@ -15,6 +15,7 @@ import eu.kanade.tachiyomi.animesource.model.Track
|
||||||
import eu.kanade.tachiyomi.animesource.model.Video
|
import eu.kanade.tachiyomi.animesource.model.Video
|
||||||
import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils
|
import eu.kanade.tachiyomi.lib.playlistutils.PlaylistUtils
|
||||||
import eu.kanade.tachiyomi.multisrc.anilist.AniListAnimeHttpSource
|
import eu.kanade.tachiyomi.multisrc.anilist.AniListAnimeHttpSource
|
||||||
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.POST
|
import eu.kanade.tachiyomi.network.POST
|
||||||
import eu.kanade.tachiyomi.util.parallelFlatMapBlocking
|
import eu.kanade.tachiyomi.util.parallelFlatMapBlocking
|
||||||
import eu.kanade.tachiyomi.util.parseAs
|
import eu.kanade.tachiyomi.util.parseAs
|
||||||
|
@ -90,6 +91,22 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
|
||||||
val episodeListUrl = response.request.url
|
val episodeListUrl = response.request.url
|
||||||
val animeId = episodeListUrl.pathSegments[2]
|
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 responseString = response.body.string()
|
||||||
val episodesArrayString = responseString.split("1:").last()
|
val episodesArrayString = responseString.split("1:").last()
|
||||||
|
|
||||||
|
@ -127,6 +144,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
|
||||||
.addQueryParameter("id", animeId)
|
.addQueryParameter("id", animeId)
|
||||||
.addQueryParameter("ep", episodeNumber.toString())
|
.addQueryParameter("ep", episodeNumber.toString())
|
||||||
.addQueryParameter("extras", episodeExtraString)
|
.addQueryParameter("extras", episodeExtraString)
|
||||||
|
.addQueryParameter("idMal", idMal.toString())
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
val name = parseEpisodeName(episodeNumber.toString(), episode.title)
|
val name = parseEpisodeName(episodeNumber.toString(), episode.title)
|
||||||
|
@ -156,7 +174,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
|
||||||
override suspend fun getVideoList(episode: SEpisode): List<Video> {
|
override suspend fun getVideoList(episode: SEpisode): List<Video> {
|
||||||
val episodeUrl = episode.url.toHttpUrl()
|
val episodeUrl = episode.url.toHttpUrl()
|
||||||
val animeId = episodeUrl.queryParameter("id") ?: return emptyList()
|
val animeId = episodeUrl.queryParameter("id") ?: return emptyList()
|
||||||
// val episodeNum = episodeUrl.queryParameter("ep") ?: return emptyList()
|
val idMal = episodeUrl.queryParameter("idMal") ?: return emptyList()
|
||||||
val extras = episodeUrl.queryParameter("extras")
|
val extras = episodeUrl.queryParameter("extras")
|
||||||
?.let {
|
?.let {
|
||||||
try {
|
try {
|
||||||
|
@ -193,7 +211,7 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
|
||||||
extra.episodeNum.toString() // If it has a fractional part, leave it as a float
|
extra.episodeNum.toString() // If it has a fractional part, leave it as a float
|
||||||
}
|
}
|
||||||
|
|
||||||
val requestBody = "[\"$animeId\",\"${extra.source}\",\"${extra.episodeId}\",\"$epNum\",\"$language\"]"
|
val requestBody = "[\"$animeId\",$idMal,\"${extra.source}\",\"${extra.episodeId}\",\"$epNum\",\"$language\"]"
|
||||||
.toRequestBody("application/json".toMediaType())
|
.toRequestBody("application/json".toMediaType())
|
||||||
|
|
||||||
val params = mapOf(
|
val params = mapOf(
|
||||||
|
@ -205,7 +223,6 @@ class AniPlay : AniListAnimeHttpSource(), ConfigurableAnimeSource {
|
||||||
val builder = Uri.parse("$baseUrl/anime/watch").buildUpon()
|
val builder = Uri.parse("$baseUrl/anime/watch").buildUpon()
|
||||||
params.map { (k, v) -> builder.appendQueryParameter(k, v); }
|
params.map { (k, v) -> builder.appendQueryParameter(k, v); }
|
||||||
val url = builder.build().toString()
|
val url = builder.build().toString()
|
||||||
Log.i("AniPlay", "Url: $url")
|
|
||||||
try {
|
try {
|
||||||
val request = POST(url, headersWithAction, requestBody)
|
val request = POST(url, headersWithAction, requestBody)
|
||||||
val response = client.newCall(request).execute()
|
val response = client.newCall(request).execute()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue