From c986f2924c24933fab0eaa7f279381cee143ea16 Mon Sep 17 00:00:00 2001 From: Alan Tan Date: Fri, 14 Mar 2025 20:59:46 +0800 Subject: [PATCH] Colamanga: add upload date to latest chapter (#7935) * ColaMange: Update filter * ColaMange: add date_upload The mange chapter should used the last updated date as the date_upload for user to better predict the next new chapters date * ColaMange: Improve date parse * Revert bump * ColoManga: minor update * ColoManga: bump * ColoManga: add error check --------- Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com> --- lib-multisrc/colamanga/build.gradle.kts | 2 +- .../tachiyomi/multisrc/colamanga/ColaManga.kt | 15 +++++++++++++++ .../tachiyomi/extension/zh/onemanhua/Onemanhua.kt | 2 ++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib-multisrc/colamanga/build.gradle.kts b/lib-multisrc/colamanga/build.gradle.kts index b736bb247..b6fcc301f 100644 --- a/lib-multisrc/colamanga/build.gradle.kts +++ b/lib-multisrc/colamanga/build.gradle.kts @@ -2,7 +2,7 @@ plugins { id("lib-multisrc") } -baseVersionCode = 8 +baseVersionCode = 9 dependencies { api(project(":lib:synchrony")) diff --git a/lib-multisrc/colamanga/src/eu/kanade/tachiyomi/multisrc/colamanga/ColaManga.kt b/lib-multisrc/colamanga/src/eu/kanade/tachiyomi/multisrc/colamanga/ColaManga.kt index b531789b7..5eed418dc 100644 --- a/lib-multisrc/colamanga/src/eu/kanade/tachiyomi/multisrc/colamanga/ColaManga.kt +++ b/lib-multisrc/colamanga/src/eu/kanade/tachiyomi/multisrc/colamanga/ColaManga.kt @@ -19,19 +19,23 @@ import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import eu.kanade.tachiyomi.util.asJsoup import keiyoushi.utils.getPreferencesLazy +import keiyoushi.utils.tryParse import kotlinx.serialization.json.Json import kotlinx.serialization.json.jsonArray import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.Request +import okhttp3.Response import org.jsoup.nodes.Document import org.jsoup.nodes.Element import rx.Observable import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy +import java.text.SimpleDateFormat import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit @@ -149,6 +153,8 @@ abstract class ColaManga( protected abstract val genreTitle: String protected abstract val statusOngoing: String protected abstract val statusCompleted: String + protected abstract val lastUpdated: String + private val dateFormat: SimpleDateFormat = SimpleDateFormat("yyyy-MM-dd") override fun mangaDetailsParse(document: Document) = SManga.create().apply { title = document.selectFirst("h1.fed-part-eone")!!.text() @@ -167,6 +173,15 @@ abstract class ColaManga( override fun chapterListSelector(): String = "div:not(.fed-hidden) > div.all_data_list > ul.fed-part-rows a" + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + return document.select(chapterListSelector()).map { chapterFromElement(it) }.apply { + if (isNotEmpty()) { + this[0].date_upload = dateFormat.tryParse(document.selectFirst("span.fed-text-muted:contains($lastUpdated) + a")?.text()) + } + } + } + override fun chapterFromElement(element: Element) = SChapter.create().apply { setUrlWithoutDomain(element.attr("href")) name = element.attr("title") diff --git a/src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt b/src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt index c2c4a8836..00bd99cc7 100644 --- a/src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt +++ b/src/zh/onemanhua/src/eu/kanade/tachiyomi/extension/zh/onemanhua/Onemanhua.kt @@ -14,6 +14,7 @@ class Onemanhua : ColaManga("COLAMANGA", "https://www.colamanga.com", "zh") { override val genreTitle = "类别" override val statusOngoing = "连载中" override val statusCompleted = "已完结" + override val lastUpdated = "更新" override fun getFilterList(): FilterList { val filters = buildList { @@ -82,6 +83,7 @@ class Onemanhua : ColaManga("COLAMANGA", "https://www.colamanga.com", "zh") { Pair("霸总", "10127"), Pair("大女主", "10706"), Pair("生活", "10142"), + Pair("少年热血", "12163"), ), ) private class CharFilter : UriPartFilter(