parent
dbb7d18683
commit
3c473ea28d
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'Komiku'
|
extName = 'Komiku'
|
||||||
pkgNameSuffix = 'id.komiku'
|
pkgNameSuffix = 'id.komiku'
|
||||||
extClass = '.Komiku'
|
extClass = '.Komiku'
|
||||||
extVersionCode = 3
|
extVersionCode = 4
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,9 @@ import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
|||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
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.util.Calendar
|
import java.util.Calendar
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
class Komiku : ParsedHttpSource() {
|
class Komiku : ParsedHttpSource() {
|
||||||
override val name = "Komiku"
|
override val name = "Komiku"
|
||||||
@ -73,26 +75,28 @@ class Komiku : ParsedHttpSource() {
|
|||||||
else -> SManga.UNKNOWN
|
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 {
|
override fun chapterFromElement(element: Element) = SChapter.create().apply {
|
||||||
setUrlWithoutDomain(element.select("a.popunder").attr("href"))
|
setUrlWithoutDomain(element.select("a").attr("href"))
|
||||||
name = element.select("a.popunder").attr("title")
|
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
|
val timeStamp = element.select("td.tanggalseries")
|
||||||
date_upload = parseRelativeDate(element.select("time").text().trim()) ?: 0
|
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
|
// Used Google translate here
|
||||||
private fun parseRelativeDate(date: String): Long? {
|
private fun parseRelativeDate(date: String): Long? {
|
||||||
val trimmedDate = date.substringBefore(" lalu").removeSuffix("s").split(" ")
|
val trimmedDate = date.substringBefore(" lalu").removeSuffix("s").split(" ")
|
||||||
|
|
||||||
val calendar = Calendar.getInstance()
|
val calendar = Calendar.getInstance()
|
||||||
when (trimmedDate[1]) {
|
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()) }
|
"jam" -> calendar.apply { add(Calendar.HOUR_OF_DAY, -trimmedDate[0].toInt()) }
|
||||||
"menit" -> calendar.apply { add(Calendar.MINUTE, -trimmedDate[0].toInt()) }
|
"menit" -> calendar.apply { add(Calendar.MINUTE, -trimmedDate[0].toInt()) }
|
||||||
"detik" -> calendar.apply { add(Calendar.SECOND, 0) }
|
"detik" -> calendar.apply { add(Calendar.SECOND, 0) }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user