From b39abcc4a0ab57e1baa10f58574e7f77c2ed156e Mon Sep 17 00:00:00 2001 From: Naga <94557604+NagaYZ@users.noreply.github.com> Date: Sat, 15 Jun 2024 14:17:19 +0200 Subject: [PATCH] fix select chapter --- .gitignore | 1 + .../org/koitharu/kotatsu/parsers/site/zh/Baozimh.kt | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a1dfc7e6f..e1ffa440e 100644 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,7 @@ fabric.properties .gradle/ build/ +bin/ .idea/**/misc.xml .idea/**/vcs.xml diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zh/Baozimh.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zh/Baozimh.kt index e4e3981d0..3164936e7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zh/Baozimh.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zh/Baozimh.kt @@ -7,6 +7,7 @@ import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaSourceParser import org.koitharu.kotatsu.parsers.PagedMangaParser import org.koitharu.kotatsu.parsers.config.ConfigKey +import org.koitharu.kotatsu.parsers.exception.ParseException import org.koitharu.kotatsu.parsers.model.* import org.koitharu.kotatsu.parsers.util.* import org.koitharu.kotatsu.parsers.util.json.mapJSON @@ -156,6 +157,14 @@ internal class Baozimh(context: MangaLoaderContext) : val tagMap = tagsMap.get() val selectTag = doc.select(".tag-list span.tag").drop(1) val tags = selectTag.mapNotNullToSet { tagMap[it.text()] } + var chaptersReversed = false + val chapters = try { + doc.requireElementById("chapter-items").select("div.comics-chapters a") + doc.requireElementById("chapters_other_list").select("div.comics-chapters a") + } catch (e: ParseException) { + chaptersReversed = true + // If the above fails it means the manga is new, so we select the chapters using the "comics-chapters__item" query + doc.select(".comics-chapters__item") + } return manga.copy( description = doc.selectFirst(".comics-detail__desc")?.text().orEmpty(), state = when (state) { @@ -164,9 +173,7 @@ internal class Baozimh(context: MangaLoaderContext) : else -> null }, tags = tags, - chapters = (doc.requireElementById("chapter-items").select("div.comics-chapters a") - + doc.requireElementById("chapters_other_list").select("div.comics-chapters a")) - .mapChapters { i, a -> + chapters = chapters.mapChapters(chaptersReversed) { i, a -> val url = a.attrAsRelativeUrl("href").toAbsoluteUrl(domain) MangaChapter( id = generateUid(url),