From 4f36aef73d37da0d1cedaac657f1e42e95d1cacd Mon Sep 17 00:00:00 2001 From: Riztard Lanthorn <riyanluqman@gmail.com> Date: Wed, 2 Dec 2020 19:42:18 +0700 Subject: [PATCH] revert removed harcode date-parse (#4994) it seems normal dateFormat doesnt work in some cases(android/device/android lower than 10/other cause) --- src/all/webtoons/build.gradle | 2 +- .../extension/all/webtoons/WebtoonsFactory.kt | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/all/webtoons/build.gradle b/src/all/webtoons/build.gradle index 64966dcb3..f00bd874d 100644 --- a/src/all/webtoons/build.gradle +++ b/src/all/webtoons/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Webtoons' pkgNameSuffix = 'all.webtoons' extClass = '.WebtoonsFactory' - extVersionCode = 21 + extVersionCode = 22 libVersion = '1.2' } diff --git a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/all/webtoons/WebtoonsFactory.kt b/src/all/webtoons/src/eu/kanade/tachiyomi/extension/all/webtoons/WebtoonsFactory.kt index 24da02c5b..73d71d7b8 100644 --- a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/all/webtoons/WebtoonsFactory.kt +++ b/src/all/webtoons/src/eu/kanade/tachiyomi/extension/all/webtoons/WebtoonsFactory.kt @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.extension.all.webtoons import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.SourceFactory import java.text.SimpleDateFormat +import java.util.GregorianCalendar import java.util.Locale class WebtoonsFactory : SourceFactory { @@ -51,8 +52,21 @@ class WebtoonsFactory : SourceFactory { class WebtoonsEnglish : WebtoonsDefault("en") -class WebtoonsIndonesian : WebtoonsDefault("id", dateFormat = SimpleDateFormat("yyyy MMM dd", Locale("id"))) { +class WebtoonsIndonesian : WebtoonsDefault("id") { override val name: String = "Webtoons.com (Indonesian)" + + // Android seems to be unable to parse Indonesian dates; we'll use a short hard-coded table + // instead. + private val dateMap: Array<String> = arrayOf( + "Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des" + ) + + override fun chapterParseDate(date: String): Long { + val expr = Regex("""(\d{4}) ([A-Z][a-z]{2}) (\d+)""").find(date) ?: return 0 + val (_, year, monthString, day) = expr.groupValues + val monthIndex = dateMap.indexOf(monthString) + return GregorianCalendar(year.toInt(), monthIndex, day.toInt()).time.time + } } class WebtoonsThai : WebtoonsDefault("th", dateFormat = SimpleDateFormat("d MMM yyyy", Locale("th")))