From 3a213c1ca88999bb3e4ccc8d30713dbdf4cfbe00 Mon Sep 17 00:00:00 2001 From: Thomas Meng <37476539+ThomasMengMXC@users.noreply.github.com> Date: Mon, 1 Jan 2024 01:18:19 +1000 Subject: [PATCH] Fix order of chapters/volumes in manhuagui. (#19503) * Groups chapters/volumes and special chapters together into blocks --- src/zh/manhuagui/build.gradle | 2 +- .../extension/zh/manhuagui/Manhuagui.kt | 33 ++++++++++++------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/zh/manhuagui/build.gradle b/src/zh/manhuagui/build.gradle index e94c073bc..e8240315f 100644 --- a/src/zh/manhuagui/build.gradle +++ b/src/zh/manhuagui/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'ManHuaGui' pkgNameSuffix = 'zh.manhuagui' extClass = '.Manhuagui' - extVersionCode = 17 + extVersionCode = 18 } apply from: "$rootDir/common.gradle" diff --git a/src/zh/manhuagui/src/eu/kanade/tachiyomi/extension/zh/manhuagui/Manhuagui.kt b/src/zh/manhuagui/src/eu/kanade/tachiyomi/extension/zh/manhuagui/Manhuagui.kt index b988ae051..a3054b5c4 100644 --- a/src/zh/manhuagui/src/eu/kanade/tachiyomi/extension/zh/manhuagui/Manhuagui.kt +++ b/src/zh/manhuagui/src/eu/kanade/tachiyomi/extension/zh/manhuagui/Manhuagui.kt @@ -312,23 +312,34 @@ class Manhuagui( error("您需要打开R18作品显示开关并重启软件才能阅读此作品") } } - val chapterList = document.select("ul > li > a.status0") val latestChapterHref = document.select("div.book-detail > ul.detail-list > li.status > span > a.blue").first()?.attr("href") val chNumRegex = Regex("""\d+""") - chapterList.forEach { - val currentChapter = SChapter.create() - currentChapter.url = it.attr("href") - currentChapter.name = it?.attr("title")?.trim() ?: it.select("span").first()!!.ownText() - currentChapter.chapter_number = chNumRegex.find(currentChapter.name)?.value?.toFloatOrNull() ?: -1F - // Manhuagui only provide upload date for latest chapter - if (currentChapter.url == latestChapterHref) { - currentChapter.date_upload = parseDate(document.select("div.book-detail > ul.detail-list > li.status > span > span.red").last()!!) + val sectionList = document.select("[id^=chapter-list-]") + sectionList.forEach { section -> + val pageList = section.select("ul") + pageList.reverse() + pageList.forEach { page -> + val pageChapters = mutableListOf() + val chapterList = page.select("li > a.status0") + chapterList.forEach { + val currentChapter = SChapter.create() + currentChapter.url = it.attr("href") + currentChapter.name = it?.attr("title")?.trim() ?: it.select("span").first()!!.ownText() + currentChapter.chapter_number = chNumRegex.find(currentChapter.name)?.value?.toFloatOrNull() ?: -1F + + // Manhuagui only provide upload date for latest chapter + if (currentChapter.url == latestChapterHref) { + currentChapter.date_upload = parseDate(document.select("div.book-detail > ul.detail-list > li.status > span > span.red").last()!!) + } + pageChapters.add(currentChapter) + } + + chapters.addAll(pageChapters) } - chapters.add(currentChapter) } - return chapters.sortedByDescending { it.chapter_number } + return chapters } private fun parseDate(element: Element): Long = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(element.text())?.time ?: 0