From 3c473ea28d05e90d3c52070ec258c90f37fb9983 Mon Sep 17 00:00:00 2001 From: Riztard Lanthorn <riyanluqman@gmail.com> Date: Sun, 22 Nov 2020 21:12:33 +0700 Subject: [PATCH] Komiku fix chapter (#4921) Komiku fix chapter --- src/id/komiku/build.gradle | 2 +- .../tachiyomi/extension/id/komiku/Komiku.kt | 22 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/id/komiku/build.gradle b/src/id/komiku/build.gradle index ee3bef18b..4d28beb10 100644 --- a/src/id/komiku/build.gradle +++ b/src/id/komiku/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Komiku' pkgNameSuffix = 'id.komiku' extClass = '.Komiku' - extVersionCode = 3 + extVersionCode = 4 libVersion = '1.2' } diff --git a/src/id/komiku/src/eu/kanade/tachiyomi/extension/id/komiku/Komiku.kt b/src/id/komiku/src/eu/kanade/tachiyomi/extension/id/komiku/Komiku.kt index 10dea5590..3b7c5ad21 100644 --- a/src/id/komiku/src/eu/kanade/tachiyomi/extension/id/komiku/Komiku.kt +++ b/src/id/komiku/src/eu/kanade/tachiyomi/extension/id/komiku/Komiku.kt @@ -9,7 +9,9 @@ import eu.kanade.tachiyomi.source.online.ParsedHttpSource import okhttp3.OkHttpClient import org.jsoup.nodes.Document import org.jsoup.nodes.Element +import java.text.SimpleDateFormat import java.util.Calendar +import java.util.Locale class Komiku : ParsedHttpSource() { override val name = "Komiku" @@ -73,26 +75,28 @@ class Komiku : ParsedHttpSource() { else -> SManga.UNKNOWN } - override fun chapterListSelector() = "table.chapter tr:has(td.judulseries)" + override fun chapterListSelector() = "table#Daftar_Chapter tr:has(td.judulseries)" override fun chapterFromElement(element: Element) = SChapter.create().apply { - setUrlWithoutDomain(element.select("a.popunder").attr("href")) - name = element.select("a.popunder").attr("title") + setUrlWithoutDomain(element.select("a").attr("href")) + name = element.select("a").attr("title") - // Has datetime attribute, but all are set to start of current day for whatever reason, so parsing text instead - date_upload = parseRelativeDate(element.select("time").text().trim()) ?: 0 + val timeStamp = element.select("td.tanggalseries") + if (timeStamp.text().contains("lalu")) { + date_upload = parseRelativeDate(timeStamp.text().trim()) ?: 0 + } else { + date_upload = parseDate(timeStamp.last()) + } } + private fun parseDate(element: Element): Long = SimpleDateFormat("dd/MM/yyyy", Locale.US).parse(element.text())?.time ?: 0 + // Used Google translate here private fun parseRelativeDate(date: String): Long? { val trimmedDate = date.substringBefore(" lalu").removeSuffix("s").split(" ") val calendar = Calendar.getInstance() when (trimmedDate[1]) { - "tahun" -> calendar.apply { add(Calendar.YEAR, -trimmedDate[0].toInt()) } - "bulan" -> calendar.apply { add(Calendar.MONTH, -trimmedDate[0].toInt()) } - "minggu" -> calendar.apply { add(Calendar.WEEK_OF_MONTH, -trimmedDate[0].toInt()) } - "hari" -> calendar.apply { add(Calendar.DAY_OF_MONTH, -trimmedDate[0].toInt()) } "jam" -> calendar.apply { add(Calendar.HOUR_OF_DAY, -trimmedDate[0].toInt()) } "menit" -> calendar.apply { add(Calendar.MINUTE, -trimmedDate[0].toInt()) } "detik" -> calendar.apply { add(Calendar.SECOND, 0) }