animeonsen: fix episode list

This commit is contained in:
jmir1
2022-08-25 13:29:08 +02:00
parent 89c6b9a5ad
commit 91d6feb54f
2 changed files with 16 additions and 17 deletions

View File

@ -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'
} }

View File

@ -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"
} }
} }