From 04f8307fd944635f4aae010c9721007111595fb0 Mon Sep 17 00:00:00 2001 From: Gauthier <gotson@users.noreply.github.com> Date: Tue, 17 Jan 2023 19:24:20 +0800 Subject: [PATCH] move date formatters to KomgaHelper (#14989) apply UTC timezone to formatters return time as 0 if parsing fails --- src/all/komga/CHANGELOG.md | 8 ++++++++ src/all/komga/build.gradle | 2 +- .../tachiyomi/extension/all/komga/Komga.kt | 16 +++++++--------- .../tachiyomi/extension/all/komga/KomgaHelper.kt | 14 ++++++++++++++ 4 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/KomgaHelper.kt diff --git a/src/all/komga/CHANGELOG.md b/src/all/komga/CHANGELOG.md index a6a84a65a..420d6aae6 100644 --- a/src/all/komga/CHANGELOG.md +++ b/src/all/komga/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.3.44 + +Minimum Komga version required: `0.151.0` + +### Fix + +* Better date/time parsing + ## 1.3.43 Minimum Komga version required: `0.151.0` diff --git a/src/all/komga/build.gradle b/src/all/komga/build.gradle index 75f7e2ff5..f7c3cc8c3 100644 --- a/src/all/komga/build.gradle +++ b/src/all/komga/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Komga' pkgNameSuffix = 'all.komga' extClass = '.KomgaFactory' - extVersionCode = 43 + extVersionCode = 44 } dependencies { diff --git a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt index 74047675c..954bc6988 100644 --- a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt +++ b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/Komga.kt @@ -46,8 +46,6 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy import java.security.MessageDigest -import java.text.SimpleDateFormat -import java.util.Date import java.util.Locale open class Komga(suffix: String = "") : ConfigurableSource, UnmeteredSource, HttpSource() { @@ -302,26 +300,26 @@ open class Komga(suffix: String = "") : ConfigurableSource, UnmeteredSource, Htt private fun parseDate(date: String?): Long = if (date == null) - Date().time + 0 else { try { - SimpleDateFormat("yyyy-MM-dd", Locale.US).parse(date).time + KomgaHelper.formatterDate.parse(date)?.time ?: 0 } catch (ex: Exception) { - Date().time + 0 } } private fun parseDateTime(date: String?): Long = if (date == null) - Date().time + 0 else { try { - SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US).parse(date).time + KomgaHelper.formatterDateTime.parse(date)?.time ?: 0 } catch (ex: Exception) { try { - SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S", Locale.US).parse(date).time + KomgaHelper.formatterDateTimeMilli.parse(date)?.time ?: 0 } catch (ex: Exception) { - Date().time + 0 } } } diff --git a/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/KomgaHelper.kt b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/KomgaHelper.kt new file mode 100644 index 000000000..0f91a5826 --- /dev/null +++ b/src/all/komga/src/eu/kanade/tachiyomi/extension/all/komga/KomgaHelper.kt @@ -0,0 +1,14 @@ +package eu.kanade.tachiyomi.extension.all.komga + +import java.text.SimpleDateFormat +import java.util.Locale +import java.util.TimeZone + +object KomgaHelper { + val formatterDate = SimpleDateFormat("yyyy-MM-dd", Locale.US) + .apply { timeZone = TimeZone.getTimeZone("UTC") } + val formatterDateTime = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US) + .apply { timeZone = TimeZone.getTimeZone("UTC") } + val formatterDateTimeMilli = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S", Locale.US) + .apply { timeZone = TimeZone.getTimeZone("UTC") } +}