Animixplay: fix cdn server and add latest feature (#390)
This commit is contained in:
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'Animixplay'
|
extName = 'Animixplay'
|
||||||
pkgNameSuffix = 'en.animixplay'
|
pkgNameSuffix = 'en.animixplay'
|
||||||
extClass = '.Animixplay'
|
extClass = '.Animixplay'
|
||||||
extVersionCode = 8
|
extVersionCode = 9
|
||||||
libVersion = '12'
|
libVersion = '12'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
|
|
||||||
override val lang = "en"
|
override val lang = "en"
|
||||||
|
|
||||||
override val supportsLatest = false
|
override val supportsLatest = true
|
||||||
|
|
||||||
override val client: OkHttpClient = network.cloudflareClient
|
override val client: OkHttpClient = network.cloudflareClient
|
||||||
|
|
||||||
@ -61,6 +61,9 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
var nextPage = "99999999"
|
var nextPage = "99999999"
|
||||||
var hasNextPage = true
|
var hasNextPage = true
|
||||||
|
|
||||||
|
var latestNextDate = "3020-05-06 00:00:00"
|
||||||
|
var latestHasNextPage = true
|
||||||
|
|
||||||
override fun popularAnimeSelector(): String = throw Exception("not used")
|
override fun popularAnimeSelector(): String = throw Exception("not used")
|
||||||
|
|
||||||
override fun popularAnimeRequest(page: Int): Request {
|
override fun popularAnimeRequest(page: Int): Request {
|
||||||
@ -89,7 +92,7 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
|
|
||||||
private fun popularAnimeFromElement(animeJson: JsonObject): SAnime {
|
private fun popularAnimeFromElement(animeJson: JsonObject): SAnime {
|
||||||
val anime = SAnime.create()
|
val anime = SAnime.create()
|
||||||
anime.setUrlWithoutDomain(animeJson["url"]!!.jsonPrimitive.content)
|
anime.setUrlWithoutDomain(animeJson["url"]!!.jsonPrimitive.content.substringBefore("/ep"))
|
||||||
anime.thumbnail_url = animeJson["picture"]!!.jsonPrimitive.content
|
anime.thumbnail_url = animeJson["picture"]!!.jsonPrimitive.content
|
||||||
anime.title = animeJson["title"]!!.jsonPrimitive.content
|
anime.title = animeJson["title"]!!.jsonPrimitive.content
|
||||||
return anime
|
return anime
|
||||||
@ -191,7 +194,7 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
)
|
)
|
||||||
).execute().request.url.fragment!!.substringBefore("#")
|
).execute().request.url.fragment!!.substringBefore("#")
|
||||||
val masterUrl = decodeBase64(redirectUrlEncodedString)
|
val masterUrl = decodeBase64(redirectUrlEncodedString)
|
||||||
return if (masterUrl.contains("gogocdn")) {
|
return if (masterUrl.contains("gogo")) {
|
||||||
parseCdnMasterPlaylist(masterUrl)
|
parseCdnMasterPlaylist(masterUrl)
|
||||||
} else {
|
} else {
|
||||||
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
|
val masterPlaylist = client.newCall(GET(masterUrl, headers)).execute().body!!.string()
|
||||||
@ -328,7 +331,27 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
|
|||||||
|
|
||||||
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("not used")
|
override fun latestUpdatesFromElement(element: Element): SAnime = throw Exception("not used")
|
||||||
|
|
||||||
override fun latestUpdatesRequest(page: Int): Request = throw Exception("not used")
|
override fun latestUpdatesRequest(page: Int): Request {
|
||||||
|
val formBody = FormBody.Builder()
|
||||||
|
.add("genre", "any")
|
||||||
|
.add("minstr", latestNextDate)
|
||||||
|
.add("orderby", "latest")
|
||||||
|
.build()
|
||||||
|
return POST("$baseUrl/api/search", headers, body = formBody)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun latestUpdatesParse(response: Response): AnimesPage {
|
||||||
|
val document = response.asJsoup()
|
||||||
|
val responseJson = json.decodeFromString<JsonObject>(document.select("body").text())
|
||||||
|
latestNextDate = responseJson["last"]!!.jsonPrimitive.content
|
||||||
|
latestHasNextPage = responseJson["more"]!!.jsonPrimitive.boolean
|
||||||
|
val animeList = responseJson["result"]!!.jsonArray
|
||||||
|
val animes = animeList.map { element ->
|
||||||
|
popularAnimeFromElement(element.jsonObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
return AnimesPage(animes, latestHasNextPage)
|
||||||
|
}
|
||||||
|
|
||||||
override fun latestUpdatesSelector(): String = throw Exception("not used")
|
override fun latestUpdatesSelector(): String = throw Exception("not used")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user