animeonsen: fix episode list
This commit is contained in:
@ -6,7 +6,7 @@ ext {
|
|||||||
extName = 'AnimeOnsen'
|
extName = 'AnimeOnsen'
|
||||||
pkgNameSuffix = 'all.animeonsen'
|
pkgNameSuffix = 'all.animeonsen'
|
||||||
extClass = '.AnimeOnsen'
|
extClass = '.AnimeOnsen'
|
||||||
extVersionCode = 3
|
extVersionCode = 4
|
||||||
libVersion = '13'
|
libVersion = '13'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,10 +14,11 @@ import eu.kanade.tachiyomi.animesource.model.Video
|
|||||||
import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource
|
import eu.kanade.tachiyomi.animesource.online.AnimeHttpSource
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.asObservableSuccess
|
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
|
import kotlinx.serialization.json.JsonObject
|
||||||
import kotlinx.serialization.json.boolean
|
import kotlinx.serialization.json.boolean
|
||||||
|
import kotlinx.serialization.json.jsonObject
|
||||||
import kotlinx.serialization.json.jsonPrimitive
|
import kotlinx.serialization.json.jsonPrimitive
|
||||||
import okhttp3.Headers
|
import okhttp3.Headers
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
@ -50,7 +51,6 @@ class AnimeOnsen : AnimeHttpSource() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
||||||
.add("referer", baseUrl)
|
|
||||||
.add("user-agent", AO_USER_AGENT)
|
.add("user-agent", AO_USER_AGENT)
|
||||||
|
|
||||||
// ============================== Popular ===============================
|
// ============================== Popular ===============================
|
||||||
@ -69,23 +69,22 @@ class AnimeOnsen : AnimeHttpSource() {
|
|||||||
|
|
||||||
// ============================== Episodes ==============================
|
// ============================== Episodes ==============================
|
||||||
override fun episodeListParse(response: Response): List<SEpisode> {
|
override fun episodeListParse(response: Response): List<SEpisode> {
|
||||||
val episodes = response.asJsoup().select("div.episode-list > a")
|
val contentId = response.request.url.toString().substringBeforeLast("/episodes")
|
||||||
return episodes.map {
|
.substringAfterLast("/")
|
||||||
val num = it.attr("data-episode")
|
val responseJson = json.decodeFromString<JsonObject>(response.body!!.string())
|
||||||
val episodeSpan = it.select("div.episode > span.general")
|
return responseJson.keys.toList().sortedDescending().map { epNum ->
|
||||||
val titleSpan = it.select("div.episode > span.title")
|
|
||||||
SEpisode.create().apply {
|
SEpisode.create().apply {
|
||||||
url = it.attr("href")
|
url = "$contentId/video/$epNum"
|
||||||
.substringAfter("/watch/")
|
episode_number = epNum.toFloat()
|
||||||
.replace("?episode=", "/video/")
|
val episodeName =
|
||||||
episode_number = num.toFloat()
|
responseJson[epNum]!!.jsonObject["contentTitle_episode_en"]!!.jsonPrimitive.content
|
||||||
name = episodeSpan.text() + ": " + titleSpan.text()
|
name = "Episode $epNum: $episodeName"
|
||||||
}
|
}
|
||||||
}.reversed()
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun episodeListRequest(anime: SAnime): Request {
|
override fun episodeListRequest(anime: SAnime): Request {
|
||||||
return GET("$baseUrl/details/${anime.url}")
|
return GET("$apiUrl/content/${anime.url}/episodes")
|
||||||
}
|
}
|
||||||
|
|
||||||
// ============================ Video Links =============================
|
// ============================ Video Links =============================
|
||||||
@ -135,7 +134,7 @@ class AnimeOnsen : AnimeHttpSource() {
|
|||||||
author = details.mal_data?.studios?.joinToString { it.name }
|
author = details.mal_data?.studios?.joinToString { it.name }
|
||||||
genre = details.mal_data?.genres?.joinToString { it.name }
|
genre = details.mal_data?.genres?.joinToString { it.name }
|
||||||
description = details.mal_data?.synopsis
|
description = details.mal_data?.synopsis
|
||||||
thumbnail_url = "https://api.animeonsen.xyz/v4/image/420x600/${details.content_id}"
|
thumbnail_url = "https://api.animeonsen.xyz/v4/image/210x300/${details.content_id}"
|
||||||
}
|
}
|
||||||
return anime
|
return anime
|
||||||
}
|
}
|
||||||
@ -168,7 +167,7 @@ class AnimeOnsen : AnimeHttpSource() {
|
|||||||
private fun AnimeListItem.toSAnime() = SAnime.create().apply {
|
private fun AnimeListItem.toSAnime() = SAnime.create().apply {
|
||||||
url = content_id
|
url = content_id
|
||||||
title = content_title ?: content_title_en!!
|
title = content_title ?: content_title_en!!
|
||||||
thumbnail_url = "https://api.animeonsen.xyz/v4/image/420x600/$content_id"
|
thumbnail_url = "https://api.animeonsen.xyz/v4/image/210x300/$content_id"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user