AnimixPlay: fix wrong series selection (#327)
This commit is contained in:
parent
76d5a28def
commit
74e5db6fb7
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'Animixplay'
|
extName = 'Animixplay'
|
||||||
pkgNameSuffix = 'en.animixplay'
|
pkgNameSuffix = 'en.animixplay'
|
||||||
extClass = '.Animixplay'
|
extClass = '.Animixplay'
|
||||||
extVersionCode = 1
|
extVersionCode = 2
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,11 +105,14 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
override fun episodeListSelector() = throw Exception("not used")
|
override fun episodeListSelector() = throw Exception("not used")
|
||||||
|
|
||||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||||
val document = getDocumentFromRequestUrl(response)
|
return if (response.request.url.toString().contains(".json")) {
|
||||||
val animeJson = json.decodeFromString<JsonObject>(document.select("body").text())
|
val document = response.asJsoup()
|
||||||
val malId = animeJson["mal_id"]!!.jsonPrimitive.int
|
val animeJson = json.decodeFromString<JsonObject>(document.select("body").text())
|
||||||
|
val malId = animeJson["mal_id"]!!.jsonPrimitive.int
|
||||||
return episodesRequest(malId, document)
|
episodesRequest(malId, document)
|
||||||
|
} else {
|
||||||
|
episodeFromResponse(response)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun episodesRequest(malId: Int, document: Document): List<SEpisode> {
|
private fun episodesRequest(malId: Int, document: Document): List<SEpisode> {
|
||||||
@ -131,17 +134,21 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
GET(
|
GET(
|
||||||
baseUrl + urlEndpoint,
|
baseUrl + urlEndpoint,
|
||||||
)
|
)
|
||||||
).execute().asJsoup()
|
).execute()
|
||||||
val episodeListJson = json.decodeFromString<JsonObject>(episodesResponse.select("div#epslistplace").text())
|
return episodeFromResponse(episodesResponse)
|
||||||
|
}
|
||||||
|
private fun episodeFromResponse(response: Response): List<SEpisode> {
|
||||||
|
val document = response.asJsoup()
|
||||||
|
val episodeListJson = json.decodeFromString<JsonObject>(document.select("div#epslistplace").text())
|
||||||
|
val url = response.request.url.toString()
|
||||||
val episodeAvailable = episodeListJson["eptotal"]!!.jsonPrimitive.int
|
val episodeAvailable = episodeListJson["eptotal"]!!.jsonPrimitive.int
|
||||||
val episodeList = mutableListOf<SEpisode>()
|
val episodeList = mutableListOf<SEpisode>()
|
||||||
|
|
||||||
for (i in 0 until episodeAvailable) {
|
for (i in 0 until episodeAvailable) {
|
||||||
episodeList.add(episodeFromJsonElement(baseUrl + urlEndpoint, i))
|
episodeList.add(episodeFromJsonElement(url, i))
|
||||||
}
|
}
|
||||||
return episodeList
|
return episodeList
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
override fun episodeFromElement(element: Element): SEpisode = throw Exception("not used")
|
||||||
|
|
||||||
private fun episodeFromJsonElement(url: String, number: Int): SEpisode {
|
private fun episodeFromJsonElement(url: String, number: Int): SEpisode {
|
||||||
@ -224,23 +231,24 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
|
|
||||||
override fun animeDetailsParse(response: Response): SAnime {
|
override fun animeDetailsParse(response: Response): SAnime {
|
||||||
Log.d("detail", response.request.url.toString())
|
Log.d("detail", response.request.url.toString())
|
||||||
return animeDetailsParse(getDocumentFromRequestUrl(response))
|
val document = if (!response.request.url.toString().contains(".json")) {
|
||||||
}
|
getDocumentFromRequestUrl(response)
|
||||||
|
|
||||||
private fun getDocumentFromRequestUrl(response: Response): Document {
|
|
||||||
return if (!response.request.url.toString().contains(".json")) {
|
|
||||||
val scriptData = response.asJsoup().select("script:containsData(var malid )").toString()
|
|
||||||
val malId = scriptData.substringAfter("var malid = '").substringBefore("';")
|
|
||||||
val url = "https://animixplay.to/assets/mal/$malId.json"
|
|
||||||
client.newCall(
|
|
||||||
GET(
|
|
||||||
url,
|
|
||||||
headers
|
|
||||||
)
|
|
||||||
).execute().asJsoup()
|
|
||||||
} else {
|
} else {
|
||||||
response.asJsoup()
|
response.asJsoup()
|
||||||
}
|
}
|
||||||
|
return animeDetailsParse(document)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getDocumentFromRequestUrl(response: Response): Document {
|
||||||
|
val scriptData = response.asJsoup().select("script:containsData(var malid )").toString()
|
||||||
|
val malId = scriptData.substringAfter("var malid = '").substringBefore("';")
|
||||||
|
val url = "https://animixplay.to/assets/mal/$malId.json"
|
||||||
|
return client.newCall(
|
||||||
|
GET(
|
||||||
|
url,
|
||||||
|
headers
|
||||||
|
)
|
||||||
|
).execute().asJsoup()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun animeDetailsParse(document: Document): SAnime {
|
override fun animeDetailsParse(document: Document): SAnime {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user