fix(pt/AnimesHouse): Fix video list and popular animes page (#1666)
This commit is contained in:
@ -25,7 +25,9 @@ class AnimesHouse : DooPlay(
|
||||
.add("Accept-Language", "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7")
|
||||
|
||||
// ============================== Popular ===============================
|
||||
override fun popularAnimeSelector(): String = "div#featured-titles div.poster"
|
||||
// This source does not have a "popular" animes page, so we're going to
|
||||
// use latest updates page instead.
|
||||
override fun fetchPopularAnime(page: Int) = fetchLatestUpdates(page)
|
||||
|
||||
// =============================== Latest ===============================
|
||||
override fun latestUpdatesNextPageSelector(): String = "div.resppages > a > span.icon-chevron-right"
|
||||
@ -42,10 +44,10 @@ class AnimesHouse : DooPlay(
|
||||
.execute()
|
||||
.use { it.asJsoup().selectFirst("iframe")!!.attr("src") }
|
||||
.let {
|
||||
if (it.startsWith("/redplay")) {
|
||||
RedplayBypasser(client, headers).fromUrl(baseUrl + it)
|
||||
} else {
|
||||
it
|
||||
when {
|
||||
it.startsWith("/redplay") ->
|
||||
RedplayBypasser(client, headers).fromUrl(baseUrl + it)
|
||||
else -> it
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -56,7 +58,7 @@ class AnimesHouse : DooPlay(
|
||||
runCatching {
|
||||
val url = getPlayerUrl(player)
|
||||
getPlayerVideos(url)
|
||||
}.getOrDefault(emptyList<Video>())
|
||||
}.getOrElse { emptyList<Video>() }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15,22 +15,23 @@ class RedplayBypasser(
|
||||
) {
|
||||
|
||||
fun fromUrl(url: String): String {
|
||||
val next = client.newCall(GET(url, headers)).execute()
|
||||
val linkUrl = client.newCall(GET(url, headers)).execute()
|
||||
.use { it.asJsoup().selectFirst("a")!!.attr("href") }
|
||||
val response = client.newCall(GET(next, headers)).execute()
|
||||
return getIframeUrl(response, next)
|
||||
|
||||
val newHeaders = headers.newBuilder().set("Referer", linkUrl).build()
|
||||
|
||||
val response = client.newCall(GET(linkUrl, newHeaders)).execute()
|
||||
return getIframeUrl(response, newHeaders)
|
||||
}
|
||||
|
||||
private fun getIframeUrl(response: Response, formUrl: String): String {
|
||||
private fun getIframeUrl(response: Response, newHeaders: Headers): String {
|
||||
return response.use { page ->
|
||||
val document = page.asJsoup(decodeAtob(page.body.string()))
|
||||
val iframe = document.selectFirst("iframe")
|
||||
if (iframe != null) {
|
||||
iframe.attr("src")
|
||||
} else {
|
||||
val newHeaders = headers.newBuilder()
|
||||
.set("Referer", formUrl)
|
||||
.build()
|
||||
val formUrl = document.selectFirst("form")!!.attr("action")
|
||||
|
||||
val formBody = FormBody.Builder().apply {
|
||||
document.select("input[name]").forEach {
|
||||
@ -38,10 +39,9 @@ class RedplayBypasser(
|
||||
}
|
||||
}.build()
|
||||
|
||||
val nextForm = document.selectFirst("form")!!.attr("action")
|
||||
val nextPage = client.newCall(POST(formUrl, newHeaders, formBody))
|
||||
client.newCall(POST(formUrl, newHeaders, formBody))
|
||||
.execute()
|
||||
getIframeUrl(nextPage, nextForm)
|
||||
.let { getIframeUrl(it, newHeaders) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ class DooPlayGenerator : ThemeSourceGenerator {
|
||||
SingleLang("AnimeOnline.Ninja", "https://www1.animeonline.ninja", "es", className = "AnimeOnlineNinja", isNsfw = false, overrideVersionCode = 26),
|
||||
SingleLang("AnimePlayer", "https://animeplayer.com.br", "pt-BR", isNsfw = true),
|
||||
SingleLang("AnimesFox BR", "https://animesfoxbr.com", "pt-BR", isNsfw = false, overrideVersionCode = 1),
|
||||
SingleLang("Animes House", "https://animeshouse.net", "pt-BR", isNsfw = false, overrideVersionCode = 4),
|
||||
SingleLang("Animes House", "https://animeshouse.net", "pt-BR", isNsfw = false, overrideVersionCode = 5),
|
||||
SingleLang("Cinemathek", "https://cinemathek.net", "de", isNsfw = true, overrideVersionCode = 12),
|
||||
SingleLang("CineVision", "https://cinevisionv3.online", "pt-BR", isNsfw = true, overrideVersionCode = 5),
|
||||
SingleLang("DonghuaX", "https://donghuax.com", "pt-BR", isNsfw = false),
|
||||
|
Reference in New Issue
Block a user