Brakeout: Fix chapters and filter (#5353)

Fix chapters and filter
This commit is contained in:
Chopper 2024-10-04 04:57:29 -03:00 committed by Draff
parent c24b4d6b98
commit ced338c8e2
No known key found for this signature in database
GPG Key ID: E8A89F3211677653
2 changed files with 14 additions and 25 deletions

View File

@ -1,7 +1,7 @@
ext { ext {
extName = 'Brakeout' extName = 'Brakeout'
extClass = '.Brakeout' extClass = '.Brakeout'
extVersionCode = 2 extVersionCode = 3
isNsfw = false isNsfw = false
} }

View File

@ -75,34 +75,23 @@ class Brakeout : ParsedHttpSource() {
query: String, query: String,
filters: FilterList, filters: FilterList,
): Observable<MangasPage> { ): Observable<MangasPage> {
if (query.isEmpty()) return super.fetchSearchManga(page, query, filters) return if (mangaList.isEmpty()) {
if (mangaList.isEmpty()) { client.newCall(searchMangaRequest(page, query, filters))
val request = searchMangaRequest(page, query, filters) .asObservableSuccess().map { response -> searchMangaParse(response, query) }
return client.newCall(request).asObservableSuccess().map { response ->
searchMangaParse(response, query)
}
} else { } else {
return Observable.just(parseMangaList(query)) Observable.just(parseMangaList(query))
} }
} }
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
if (query.isNotEmpty()) { return GET("$baseUrl/comics", headers)
if (query.length > 1) return GET("$baseUrl/comics", headers)
throw Exception("La búsqueda debe tener al menos 2 caracteres")
}
return GET("$baseUrl/comics?page=$page", headers)
} }
override fun searchMangaSelector(): String = "section.flex > div.grid > figure" override fun searchMangaSelector() = throw UnsupportedOperationException()
override fun searchMangaNextPageSelector(): String = "main.container section.flex > div > a:containsOwn(Siguiente)" override fun searchMangaNextPageSelector() = throw UnsupportedOperationException()
override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply { override fun searchMangaFromElement(element: Element) = throw UnsupportedOperationException()
thumbnail_url = element.selectFirst("img")!!.attr("abs:src")
title = element.selectFirst("figcaption")!!.text()
setUrlWithoutDomain(element.selectFirst("a")!!.attr("href"))
}
private fun searchMangaParse(response: Response, query: String): MangasPage { private fun searchMangaParse(response: Response, query: String): MangasPage {
val docString = response.body.string() val docString = response.body.string()
@ -112,7 +101,7 @@ class Brakeout : ParsedHttpSource() {
} }
private fun parseMangaList(query: String): MangasPage { private fun parseMangaList(query: String): MangasPage {
val mangas = mangaList.filter { it.name.contains(query, ignoreCase = true) } val mangas = mangaList.filter { it.name.contains(query, ignoreCase = true) || query.isBlank() }
.map { it.toSManga() } .map { it.toSManga() }
return MangasPage(mangas, false) return MangasPage(mangas, false)
} }
@ -124,12 +113,12 @@ class Brakeout : ParsedHttpSource() {
} }
} }
override fun chapterListSelector(): String = "section#section-list-cap div.grid-capitulos > div > a.group" override fun chapterListSelector(): String = "div#chapters-container a"
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
setUrlWithoutDomain(element.attr("href")) setUrlWithoutDomain(element.attr("href"))
name = element.selectFirst("div#name")!!.text() name = element.selectFirst("h1")!!.text()
date_upload = parseRelativeDate(element.selectFirst("time")!!.text()) date_upload = parseRelativeDate(element.selectFirst("p")!!.text())
} }
override fun pageListParse(document: Document): List<Page> { override fun pageListParse(document: Document): List<Page> {
@ -167,6 +156,6 @@ class Brakeout : ParsedHttpSource() {
} }
companion object { companion object {
private val JSON_PROJECT_LIST = """proyectos\s*=\s*(\[[\s\S]+?\])\s*;""".toRegex() private val JSON_PROJECT_LIST = """projects\s*=\s*(\[[\s\S]+?\])\s*;""".toRegex()
} }
} }