Fix Webtoons Indonesian showing up under English (#1611)

This commit is contained in:
arkon 2019-10-03 22:55:16 -04:00 committed by GitHub
parent 348bfea804
commit 98d477b28c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 36 additions and 58 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: Webtoons'
pkgNameSuffix = 'all.webtoons'
extClass = '.WebtoonsFactory'
extVersionCode = 9
extVersionCode = 10
libVersion = '1.2'
}

View File

@ -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
}
}

View File

@ -1,5 +0,0 @@
package eu.kanade.tachiyomi.extension.en.webtoons
import eu.kanade.tachiyomi.extension.all.webtoons.WebtoonsDefault
class WebtoonsEnglish : WebtoonsDefault("en")

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}