Fix chapter images not loading in MY (again). (#9334)
This commit is contained in:
parent
f1c948d5b9
commit
06b424fd6d
|
@ -5,7 +5,7 @@ ext {
|
||||||
extName = 'MangaYabu!'
|
extName = 'MangaYabu!'
|
||||||
pkgNameSuffix = 'pt.mangayabu'
|
pkgNameSuffix = 'pt.mangayabu'
|
||||||
extClass = '.MangaYabu'
|
extClass = '.MangaYabu'
|
||||||
extVersionCode = 13
|
extVersionCode = 14
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
|
@ -13,6 +13,7 @@ import okhttp3.Headers
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
|
import okhttp3.Response
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
|
@ -42,12 +43,21 @@ class MangaYabu : ParsedHttpSource() {
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
override fun headersBuilder(): Headers.Builder = Headers.Builder()
|
||||||
.add("User-Agent", USER_AGENT)
|
|
||||||
.add("Origin", baseUrl)
|
.add("Origin", baseUrl)
|
||||||
.add("Referer", baseUrl)
|
.add("Referer", baseUrl)
|
||||||
|
|
||||||
override fun popularMangaRequest(page: Int): Request = GET(baseUrl, headers)
|
override fun popularMangaRequest(page: Int): Request = GET(baseUrl, headers)
|
||||||
|
|
||||||
|
override fun popularMangaParse(response: Response): MangasPage {
|
||||||
|
val result = super.popularMangaParse(response)
|
||||||
|
|
||||||
|
if (result.mangas.isEmpty()) {
|
||||||
|
throw Exception(BLOCKING_MESSAGE)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
override fun popularMangaSelector(): String = "#main div.row:contains(Populares) div.carousel div.card > a"
|
override fun popularMangaSelector(): String = "#main div.row:contains(Populares) div.carousel div.card > a"
|
||||||
|
|
||||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||||
|
@ -67,6 +77,16 @@ class MangaYabu : ParsedHttpSource() {
|
||||||
|
|
||||||
override fun latestUpdatesRequest(page: Int): Request = GET(baseUrl, headers)
|
override fun latestUpdatesRequest(page: Int): Request = GET(baseUrl, headers)
|
||||||
|
|
||||||
|
override fun latestUpdatesParse(response: Response): MangasPage {
|
||||||
|
val result = super.latestUpdatesParse(response)
|
||||||
|
|
||||||
|
if (result.mangas.isEmpty()) {
|
||||||
|
throw Exception(BLOCKING_MESSAGE)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
override fun latestUpdatesSelector() = "#main div.row:contains(Lançamentos) div.card"
|
override fun latestUpdatesSelector() = "#main div.row:contains(Lançamentos) div.card"
|
||||||
|
|
||||||
override fun latestUpdatesFromElement(element: Element): SManga = SManga.create().apply {
|
override fun latestUpdatesFromElement(element: Element): SManga = SManga.create().apply {
|
||||||
|
@ -85,6 +105,16 @@ class MangaYabu : ParsedHttpSource() {
|
||||||
return POST(searchUrl, headers)
|
return POST(searchUrl, headers)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun searchMangaParse(response: Response): MangasPage {
|
||||||
|
val result = super.searchMangaParse(response)
|
||||||
|
|
||||||
|
if (result.mangas.isEmpty()) {
|
||||||
|
throw Exception(BLOCKING_MESSAGE)
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
override fun searchMangaSelector() = "#main div.row:contains(Resultados) div.card"
|
override fun searchMangaSelector() = "#main div.row:contains(Resultados) div.card"
|
||||||
|
|
||||||
override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply {
|
override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||||
|
@ -110,6 +140,16 @@ class MangaYabu : ParsedHttpSource() {
|
||||||
thumbnail_url = document.selectFirst("div.manga-index div.mango-hover img")!!.imgAttr()
|
thumbnail_url = document.selectFirst("div.manga-index div.mango-hover img")!!.imgAttr()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun chapterListParse(response: Response): List<SChapter> {
|
||||||
|
val chapters = super.chapterListParse(response)
|
||||||
|
|
||||||
|
if (chapters.isEmpty()) {
|
||||||
|
throw Exception(BLOCKING_MESSAGE)
|
||||||
|
}
|
||||||
|
|
||||||
|
return chapters
|
||||||
|
}
|
||||||
|
|
||||||
override fun chapterListSelector() = "div.manga-info:contains(Capítulos) div.manga-chapters div.single-chapter"
|
override fun chapterListSelector() = "div.manga-info:contains(Capítulos) div.manga-chapters div.single-chapter"
|
||||||
|
|
||||||
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
|
||||||
|
@ -119,10 +159,19 @@ class MangaYabu : ParsedHttpSource() {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun pageListParse(document: Document): List<Page> {
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
return document.select("img.slideit")
|
val pages = document.select("#main img[loading], #main img[ezimgfmt]")
|
||||||
.mapIndexed { i, element ->
|
.map { it.imgAttr() }
|
||||||
Page(i, document.location(), element.imgAttr())
|
.distinct()
|
||||||
|
.drop(1)
|
||||||
|
.mapIndexed { i, imgUrl ->
|
||||||
|
Page(i, document.location(), imgUrl)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pages.isEmpty()) {
|
||||||
|
throw Exception(BLOCKING_MESSAGE)
|
||||||
|
}
|
||||||
|
|
||||||
|
return pages
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun imageUrlParse(document: Document) = ""
|
override fun imageUrlParse(document: Document) = ""
|
||||||
|
@ -190,5 +239,8 @@ class MangaYabu : ParsedHttpSource() {
|
||||||
private val SLUG_EXCEPTIONS = mapOf(
|
private val SLUG_EXCEPTIONS = mapOf(
|
||||||
"the-promised-neverland-yakusoku-no-neverland" to "yakusoku-no-neverland-the-promised-neverland"
|
"the-promised-neverland-yakusoku-no-neverland" to "yakusoku-no-neverland-the-promised-neverland"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private const val BLOCKING_MESSAGE = "O site está bloqueando o Tachiyomi. " +
|
||||||
|
"Migre para outras fontes caso o problema persistir."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue