Fix animepahe again (#1283)

This commit is contained in:
Secozzi
2023-02-16 14:56:32 +01:00
committed by GitHub
parent 308c97431c
commit cc7d9f0c3c
2 changed files with 9 additions and 31 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'AnimePahe' extName = 'AnimePahe'
pkgNameSuffix = 'en.animepahe' pkgNameSuffix = 'en.animepahe'
extClass = '.AnimePahe' extClass = '.AnimePahe'
extVersionCode = 18 extVersionCode = 19
libVersion = '13' libVersion = '13'
} }

View File

@ -18,9 +18,7 @@ import eu.kanade.tachiyomi.util.asJsoup
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import kotlinx.serialization.Serializable
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.float import kotlinx.serialization.json.float
@ -59,8 +57,7 @@ class AnimePahe : ConfigurableAnimeSource, AnimeHttpSource() {
override val client: OkHttpClient = network.cloudflareClient override val client: OkHttpClient = network.cloudflareClient
override fun animeDetailsRequest(anime: SAnime): Request { override fun animeDetailsRequest(anime: SAnime): Request {
val parsed = json.decodeFromString<LinkData>(anime.url) val animeId = anime.url.substringAfterLast("?anime_id=").substringBefore("\"")
val animeId = parsed.url.substringAfterLast("?anime_id=")
val session = getSession(anime.title, animeId) val session = getSession(anime.title, animeId)
return GET("$baseUrl/anime/$session?anime_id=$animeId") return GET("$baseUrl/anime/$session?anime_id=$animeId")
} }
@ -115,12 +112,7 @@ class AnimePahe : ConfigurableAnimeSource, AnimeHttpSource() {
val anime = SAnime.create() val anime = SAnime.create()
anime.title = item.jsonObject["title"]!!.jsonPrimitive.content anime.title = item.jsonObject["title"]!!.jsonPrimitive.content
val animeId = item.jsonObject["id"]!!.jsonPrimitive.int val animeId = item.jsonObject["id"]!!.jsonPrimitive.int
anime.setUrlWithoutDomain( anime.setUrlWithoutDomain("$baseUrl/anime/?anime_id=$animeId")
LinkData(
"$baseUrl/anime/?anime_id=$animeId",
item.jsonObject["session"]!!.jsonPrimitive.content
).toJsonString()
)
animeList.add(anime) animeList.add(anime)
} }
return AnimesPage(animeList, false) return AnimesPage(animeList, false)
@ -145,12 +137,7 @@ class AnimePahe : ConfigurableAnimeSource, AnimeHttpSource() {
val anime = SAnime.create() val anime = SAnime.create()
anime.title = item.jsonObject["anime_title"]!!.jsonPrimitive.content anime.title = item.jsonObject["anime_title"]!!.jsonPrimitive.content
val animeId = item.jsonObject["anime_id"]!!.jsonPrimitive.int val animeId = item.jsonObject["anime_id"]!!.jsonPrimitive.int
anime.setUrlWithoutDomain( anime.setUrlWithoutDomain("$baseUrl/anime/?anime_id=$animeId")
LinkData(
"$baseUrl/anime/?anime_id=$animeId",
item.jsonObject["anime_session"]!!.jsonPrimitive.content
).toJsonString()
)
anime.artist = item.jsonObject["fansub"]!!.jsonPrimitive.content anime.artist = item.jsonObject["fansub"]!!.jsonPrimitive.content
animeList.add(anime) animeList.add(anime)
} }
@ -166,12 +153,14 @@ class AnimePahe : ConfigurableAnimeSource, AnimeHttpSource() {
} }
override fun fetchEpisodeList(anime: SAnime): Observable<List<SEpisode>> { override fun fetchEpisodeList(anime: SAnime): Observable<List<SEpisode>> {
val parsed = json.decodeFromString<LinkData>(anime.url) val id = anime.url.substringAfter("?anime_id=").substringBefore("\"")
val session = getSession(anime.title, id)
return if (anime.status != SAnime.LICENSED) { return if (anime.status != SAnime.LICENSED) {
client.newCall(episodeListRequest(anime)) client.newCall(episodeListRequest(anime))
.asObservableSuccess() .asObservableSuccess()
.map { response -> .map { response ->
episodeListParse(response, parsed.animeSession) episodeListParse(response, session)
} }
} else { } else {
Observable.error(Exception("Licensed - No episodes to show")) Observable.error(Exception("Licensed - No episodes to show"))
@ -179,8 +168,7 @@ class AnimePahe : ConfigurableAnimeSource, AnimeHttpSource() {
} }
override fun episodeListRequest(anime: SAnime): Request { override fun episodeListRequest(anime: SAnime): Request {
val parsed = json.decodeFromString<LinkData>(anime.url) val animeId = anime.url.substringAfterLast("?anime_id=").substringBefore("\"")
val animeId = parsed.url.substringAfterLast("?anime_id=")
val session = getSession(anime.title, animeId) val session = getSession(anime.title, animeId)
return GET("$baseUrl/api?m=release&id=$session&sort=episode_desc&page=1") return GET("$baseUrl/api?m=release&id=$session&sort=episode_desc&page=1")
} }
@ -334,14 +322,4 @@ class AnimePahe : ConfigurableAnimeSource, AnimeHttpSource() {
screen.addPreference(subPref) screen.addPreference(subPref)
screen.addPreference(linkPref) screen.addPreference(linkPref)
} }
@Serializable
data class LinkData(
val url: String,
val animeSession: String
)
private fun LinkData.toJsonString(): String {
return json.encodeToString(this)
}
} }