fix(pt/otakuanimes): Fixed images on search for pt/otakuanimes (#154)

This commit is contained in:
WebDitto 2024-08-17 16:15:30 -03:00 committed by GitHub
parent 7e7aa7da3c
commit f72391c116
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 3 deletions

View file

@ -1,7 +1,7 @@
ext { ext {
extName = 'OtakuAnimes' extName = 'OtakuAnimes'
extClass = '.OtakuAnimes' extClass = '.OtakuAnimes'
extVersionCode = 1 extVersionCode = 2
isNsfw = true isNsfw = true
} }

View file

@ -49,7 +49,7 @@ class OtakuAnimes : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
override fun popularAnimeFromElement(element: Element) = SAnime.create().apply { override fun popularAnimeFromElement(element: Element) = SAnime.create().apply {
setUrlWithoutDomain(element.attr("href")) setUrlWithoutDomain(element.attr("href"))
title = element.selectFirst("div.aniNome")!!.text().trim() title = element.selectFirst("div.aniNome")!!.text().trim()
thumbnail_url = element.selectFirst("img")?.attr("data-lazy-src") thumbnail_url = element.selectFirst("img")?.getImageUrl()
} }
override fun popularAnimeNextPageSelector() = null override fun popularAnimeNextPageSelector() = null
@ -111,7 +111,7 @@ class OtakuAnimes : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
return SAnime.create().apply { return SAnime.create().apply {
setUrlWithoutDomain(doc.location()) setUrlWithoutDomain(doc.location())
title = doc.selectFirst("div.animeFirstContainer h1")!!.text() title = doc.selectFirst("div.animeFirstContainer h1")!!.text()
thumbnail_url = doc.selectFirst("div.animeCapa img")?.attr("data-lazy-src") thumbnail_url = doc.selectFirst("div.animeCapa img")?.getImageUrl()
description = doc.selectFirst("div.animeSecondContainer > p")?.text() description = doc.selectFirst("div.animeSecondContainer > p")?.text()
genre = doc.select("ul.animeGen li").eachText()?.joinToString(", ") genre = doc.select("ul.animeGen li").eachText()?.joinToString(", ")
} }
@ -222,6 +222,19 @@ class OtakuAnimes : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
return document return document
} }
/**
* Tries to get the image url via various possible attributes.
* Taken from Tachiyomi's Madara multisrc.
*/
protected open fun Element.getImageUrl(): String? {
return when {
hasAttr("data-src") -> attr("abs:data-src")
hasAttr("data-lazy-src") -> attr("abs:data-lazy-src")
hasAttr("srcset") -> attr("abs:srcset").substringBefore(" ")
else -> attr("abs:src")
}.substringBefore("?resize")
}
companion object { companion object {
const val PREFIX_SEARCH = "path:" const val PREFIX_SEARCH = "path:"
private val REGEX_QUALITY by lazy { Regex("""(\d+)p""") } private val REGEX_QUALITY by lazy { Regex("""(\d+)p""") }