Animixplay: fix cdn server and add latest feature (#390)

This commit is contained in:
GouravShDev
2022-03-08 01:50:02 +05:30
committed by GitHub
parent 650baafb9a
commit e65de11c1c
2 changed files with 28 additions and 5 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'Animixplay'
pkgNameSuffix = 'en.animixplay'
extClass = '.Animixplay'
extVersionCode = 8
extVersionCode = 9
libVersion = '12'
}

View File

@ -48,7 +48,7 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override val lang = "en"
override val supportsLatest = false
override val supportsLatest = true
override val client: OkHttpClient = network.cloudflareClient
@ -61,6 +61,9 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
var nextPage = "99999999"
var hasNextPage = true
var latestNextDate = "3020-05-06 00:00:00"
var latestHasNextPage = true
override fun popularAnimeSelector(): String = throw Exception("not used")
override fun popularAnimeRequest(page: Int): Request {
@ -89,7 +92,7 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
private fun popularAnimeFromElement(animeJson: JsonObject): SAnime {
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.title = animeJson["title"]!!.jsonPrimitive.content
return anime
@ -191,7 +194,7 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
)
).execute().request.url.fragment!!.substringBefore("#")
val masterUrl = decodeBase64(redirectUrlEncodedString)
return if (masterUrl.contains("gogocdn")) {
return if (masterUrl.contains("gogo")) {
parseCdnMasterPlaylist(masterUrl)
} else {
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 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")