Add recursive parsing for chapters in ComicHubFree (#8605)

Fixed pagination
This commit is contained in:
Wyatt Ross 2025-04-24 13:11:45 -04:00 committed by Draff
parent 7c7ce285cd
commit 9dfa9a89a0
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 19 additions and 2 deletions

View File

@ -1,7 +1,7 @@
ext { ext {
extName = "ComicHubFree" extName = "ComicHubFree"
extClass = ".ComicHubFree" extClass = ".ComicHubFree"
extVersionCode = 1 extVersionCode = 2
isNsfw = false isNsfw = false
} }

View File

@ -6,9 +6,11 @@ import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup
import keiyoushi.utils.tryParse import keiyoushi.utils.tryParse
import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Request import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
@ -33,7 +35,7 @@ class ComicHubFree : ParsedHttpSource() {
override fun searchMangaSelector() = popularMangaSelector() override fun searchMangaSelector() = popularMangaSelector()
override fun popularMangaNextPageSelector() = "ul.pagination > li:last-child" override fun popularMangaNextPageSelector() = "ul.pagination a[rel=next]:not(hidden)"
override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector() override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector()
@ -41,6 +43,21 @@ class ComicHubFree : ParsedHttpSource() {
override fun chapterListSelector() = "div.episode-list > div > table > tbody > tr" override fun chapterListSelector() = "div.episode-list > div > table > tbody > tr"
override fun chapterListParse(response: Response): List<SChapter> {
val chapters = mutableListOf<SChapter>()
fun parseChapters(document: Document) {
document.select(chapterListSelector()).map { chapters.add(chapterFromElement(it)) }
document.selectFirst(popularMangaNextPageSelector())?.let { it ->
parseChapters(client.newCall(GET(it.absUrl("href"), headers)).execute().asJsoup())
}
}
parseChapters(response.asJsoup())
return chapters
}
override fun imageUrlParse(document: Document) = "" override fun imageUrlParse(document: Document) = ""
private fun Element.imageAttr(): String { private fun Element.imageAttr(): String {