fix(it/animeworld): 202 redirect proper fix #582

Merged
PGgamer2 merged 8 commits from patch-2 into main 2025-01-24 18:29:14 -06:00
Showing only changes of commit 2480a5576f - Show all commits

View file

@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup import eu.kanade.tachiyomi.util.asJsoup
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
@ -27,7 +28,6 @@ import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.lang.Exception
class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() { class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
@ -47,10 +47,19 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000) Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
} }
override fun headersBuilder(): Headers.Builder {
return super.headersBuilder().apply {
client.newCall(GET(baseUrl)).execute().use { response ->
val (secCookie) = """document\.cookie="SecurityAW-gl=\s*([^\s;]+)""".toRegex().find(response.body.string())!!.destructured
set("Cookie", "SecurityAW-gl=$secCookie;")
}
}
}
// Popular Anime - Same Format as Search // Popular Anime - Same Format as Search
override fun popularAnimeSelector(): String = searchAnimeSelector() override fun popularAnimeSelector(): String = searchAnimeSelector()
override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/filter?sort=6&page=$page") override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/filter?sort=6&page=$page", headers)
override fun popularAnimeFromElement(element: Element): SAnime = searchAnimeFromElement(element) override fun popularAnimeFromElement(element: Element): SAnime = searchAnimeFromElement(element)
override fun popularAnimeNextPageSelector(): String = searchAnimeNextPageSelector() override fun popularAnimeNextPageSelector(): String = searchAnimeNextPageSelector()
@ -82,7 +91,7 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun videoListRequest(episode: SEpisode): Request { override fun videoListRequest(episode: SEpisode): Request {
val iframe = baseUrl + episode.url val iframe = baseUrl + episode.url
return GET(iframe) return GET(iframe, headers)
} }
override fun videoListParse(response: Response): List<Video> { override fun videoListParse(response: Response): List<Video> {
@ -187,7 +196,7 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun searchAnimeNextPageSelector(): String = "div.paging-wrapper a#go-next-page" override fun searchAnimeNextPageSelector(): String = "div.paging-wrapper a#go-next-page"
override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request = override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request =
GET("$baseUrl/filter?${getSearchParameters(filters)}&keyword=$query&page=$page") GET("$baseUrl/filter?${getSearchParameters(filters)}&keyword=$query&page=$page", headers)
// Details // Details
@ -213,7 +222,7 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
// Latest - Same format as search // Latest - Same format as search
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/updated?page=$page") override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/updated?page=$page", headers)
override fun latestUpdatesSelector(): String = searchAnimeSelector() override fun latestUpdatesSelector(): String = searchAnimeSelector()
override fun latestUpdatesNextPageSelector(): String = searchAnimeNextPageSelector() override fun latestUpdatesNextPageSelector(): String = searchAnimeNextPageSelector()
override fun latestUpdatesFromElement(element: Element): SAnime = searchAnimeFromElement(element) override fun latestUpdatesFromElement(element: Element): SAnime = searchAnimeFromElement(element)
@ -336,6 +345,9 @@ class ANIMEWORLD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
Year("2020"), Year("2020"),
Year("2021"), Year("2021"),
Year("2022"), Year("2022"),
Year("2023"),
Year("2024"),
Year("2025"),
) )
internal class Type(val id: String, name: String) : AnimeFilter.CheckBox(name) internal class Type(val id: String, name: String) : AnimeFilter.CheckBox(name)