From 98d477b28c6b942db4f0785c2deb01e0c52d9922 Mon Sep 17 00:00:00 2001 From: arkon <arkon@users.noreply.github.com> Date: Thu, 3 Oct 2019 22:55:16 -0400 Subject: [PATCH] Fix Webtoons Indonesian showing up under English (#1611) --- src/all/webtoons/build.gradle | 2 +- .../extension/all/webtoons/WebtoonsFactory.kt | 45 ++++++++++++++----- .../extension/en/webtoons/WebtoonsEnglish.kt | 5 --- .../id/webtoons/WebtoonsIndonesian.kt | 20 --------- .../extension/th/webtoons/WebtoonsThai.kt | 11 ----- .../zh/webtoons/WebtoonsChineseTraditional.kt | 11 ----- 6 files changed, 36 insertions(+), 58 deletions(-) delete mode 100644 src/all/webtoons/src/eu/kanade/tachiyomi/extension/en/webtoons/WebtoonsEnglish.kt delete mode 100644 src/all/webtoons/src/eu/kanade/tachiyomi/extension/id/webtoons/WebtoonsIndonesian.kt delete mode 100644 src/all/webtoons/src/eu/kanade/tachiyomi/extension/th/webtoons/WebtoonsThai.kt delete mode 100644 src/all/webtoons/src/eu/kanade/tachiyomi/extension/zh/webtoons/WebtoonsChineseTraditional.kt diff --git a/src/all/webtoons/build.gradle b/src/all/webtoons/build.gradle index 3ed5015d5..2697c818f 100644 --- a/src/all/webtoons/build.gradle +++ b/src/all/webtoons/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Webtoons' pkgNameSuffix = 'all.webtoons' extClass = '.WebtoonsFactory' - extVersionCode = 9 + extVersionCode = 10 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 a1369ee1a..a389e3cab 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 @@ -1,24 +1,19 @@ package eu.kanade.tachiyomi.extension.all.webtoons -import eu.kanade.tachiyomi.extension.en.webtoons.WebtoonsEnglish -import eu.kanade.tachiyomi.extension.id.webtoons.WebtoonsIndonesian -import eu.kanade.tachiyomi.extension.th.webtoons.WebtoonsThai -import eu.kanade.tachiyomi.extension.zh.webtoons.WebtoonsChineseTraditional 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 { - override fun createSources(): List<Source> = getAllWebtoons() -} - -fun getAllWebtoons(): List<Source> { - return listOf( + override fun createSources(): List<Source> = listOf( WebtoonsEnglish(), WebtoonsChineseTraditional(), WebtoonsIndonesian(), WebtoonsThai(), - // fan translations + // Fan translations WebtoonsTranslate("en", "ENG"), WebtoonsTranslate("zh", "CMN", " (Simplified)"), WebtoonsTranslate("zh", "CHT", " (Traditional)"), @@ -52,3 +47,33 @@ fun getAllWebtoons(): List<Source> { WebtoonsTranslate("uk", "UKR") ) } + +class WebtoonsEnglish : WebtoonsDefault("en") + +class WebtoonsIndonesian: WebtoonsDefault("in", "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 DATE_MAP: 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{1,})""").find(date) ?: return 0 + val (_, year, monthString, day) = expr.groupValues + val monthIndex = DATE_MAP.indexOf(monthString) + return GregorianCalendar(year.toInt(), monthIndex, day.toInt()).time.time + } +} + +class WebtoonsThai: WebtoonsDefault("th") { + override fun chapterParseDate(date: String): Long { + return SimpleDateFormat("d MMM yyyy", Locale("th")).parse(date).time + } +} + +class WebtoonsChineseTraditional: WebtoonsDefault("zh", "zh-hant") { + override fun chapterParseDate(date: String): Long { + return SimpleDateFormat("yyyy/MM/dd", Locale.TRADITIONAL_CHINESE).parse(date).time + } +} diff --git a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/en/webtoons/WebtoonsEnglish.kt b/src/all/webtoons/src/eu/kanade/tachiyomi/extension/en/webtoons/WebtoonsEnglish.kt deleted file mode 100644 index f94b019c2..000000000 --- a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/en/webtoons/WebtoonsEnglish.kt +++ /dev/null @@ -1,5 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.webtoons - -import eu.kanade.tachiyomi.extension.all.webtoons.WebtoonsDefault - -class WebtoonsEnglish : WebtoonsDefault("en") \ No newline at end of file diff --git a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/id/webtoons/WebtoonsIndonesian.kt b/src/all/webtoons/src/eu/kanade/tachiyomi/extension/id/webtoons/WebtoonsIndonesian.kt deleted file mode 100644 index 415334d31..000000000 --- a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/id/webtoons/WebtoonsIndonesian.kt +++ /dev/null @@ -1,20 +0,0 @@ -package eu.kanade.tachiyomi.extension.id.webtoons - -import eu.kanade.tachiyomi.extension.all.webtoons.WebtoonsDefault -import java.util.* - -class WebtoonsIndonesian: WebtoonsDefault("en", "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 DATE_MAP: 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{1,})""").find(date) ?: return 0 - val (_, year, monthString, day) = expr.groupValues - val monthIndex = DATE_MAP.indexOf(monthString) - return GregorianCalendar(year.toInt(), monthIndex, day.toInt()).time.time - } -} diff --git a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/th/webtoons/WebtoonsThai.kt b/src/all/webtoons/src/eu/kanade/tachiyomi/extension/th/webtoons/WebtoonsThai.kt deleted file mode 100644 index eeb3ce0f7..000000000 --- a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/th/webtoons/WebtoonsThai.kt +++ /dev/null @@ -1,11 +0,0 @@ -package eu.kanade.tachiyomi.extension.th.webtoons - -import eu.kanade.tachiyomi.extension.all.webtoons.WebtoonsDefault -import java.text.SimpleDateFormat -import java.util.* - -class WebtoonsThai: WebtoonsDefault("th") { - override fun chapterParseDate(date: String): Long { - return SimpleDateFormat("d MMM yyyy", Locale("th")).parse(date).time - } -} diff --git a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/zh/webtoons/WebtoonsChineseTraditional.kt b/src/all/webtoons/src/eu/kanade/tachiyomi/extension/zh/webtoons/WebtoonsChineseTraditional.kt deleted file mode 100644 index 36a4bdce3..000000000 --- a/src/all/webtoons/src/eu/kanade/tachiyomi/extension/zh/webtoons/WebtoonsChineseTraditional.kt +++ /dev/null @@ -1,11 +0,0 @@ -package eu.kanade.tachiyomi.extension.zh.webtoons - -import eu.kanade.tachiyomi.extension.all.webtoons.WebtoonsDefault -import java.text.SimpleDateFormat -import java.util.* - -class WebtoonsChineseTraditional: WebtoonsDefault("zh", "zh-hant") { - override fun chapterParseDate(date: String): Long { - return SimpleDateFormat("yyyy/MM/dd", Locale.TRADITIONAL_CHINESE).parse(date).time - } -}