From 2b8629b21a82d25cd7ca860905ae5f72fe0672ee Mon Sep 17 00:00:00 2001 From: Rama Bondan Prakoso Date: Thu, 19 Sep 2019 21:47:57 +0700 Subject: [PATCH] Toonily: Fix chapter date parsing (#1533) Toonily: Update chapter date parsing --- src/en/toonily/build.gradle | 2 +- .../tachiyomi/extension/en/toonily/Toonily.kt | 40 +++++++++++++++---- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/en/toonily/build.gradle b/src/en/toonily/build.gradle index 79a11b293..8f120b633 100644 --- a/src/en/toonily/build.gradle +++ b/src/en/toonily/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Toonily' pkgNameSuffix = 'en.toonily' extClass = '.Toonily' - extVersionCode = 2 + extVersionCode = 3 libVersion = '1.2' } diff --git a/src/en/toonily/src/eu/kanade/tachiyomi/extension/en/toonily/Toonily.kt b/src/en/toonily/src/eu/kanade/tachiyomi/extension/en/toonily/Toonily.kt index f5981a1b1..d57387d2f 100644 --- a/src/en/toonily/src/eu/kanade/tachiyomi/extension/en/toonily/Toonily.kt +++ b/src/en/toonily/src/eu/kanade/tachiyomi/extension/en/toonily/Toonily.kt @@ -144,17 +144,41 @@ class Toonily: ParsedHttpSource() { val chapter = SChapter.create() chapter.setUrlWithoutDomain(urlElement.attr("href")) chapter.name = urlElement.text() - chapter.date_upload = element.select("span.chapter-release-date i").last()?.text()?.let { - try { - SimpleDateFormat("MMMM dd, yyyy", Locale.US).parse(it).time - } catch (e: ParseException) { - SimpleDateFormat("MMM dd, yyyy", Locale.US).parse(it).time - } - - } ?: 0 + val new = element.select(".c-new-tag img").attr("alt") + if (new.isNotEmpty()) + chapter.date_upload = parseChapterDate(new) + else { + chapter.date_upload = element.select("span.chapter-release-date i").last()?.text()?.let { + try { + SimpleDateFormat("MMMM dd, yyyy", Locale.US).parse(it).time + } catch (e: ParseException) { + SimpleDateFormat("MMM dd, yyyy", Locale.US).parse(it).time + } + } ?: 0 + } return chapter } + + private fun parseChapterDate(date: String): Long { + val value = date.split(' ')[0].toInt() + + return when { + "mins" in date -> Calendar.getInstance().apply { + add(Calendar.MINUTE, value * -1) + }.timeInMillis + "hours" in date -> Calendar.getInstance().apply { + add(Calendar.HOUR_OF_DAY, value * -1) + }.timeInMillis + "days" in date -> Calendar.getInstance().apply { + add(Calendar.DATE, value * -1) + }.timeInMillis + else -> { + return 0 + } + } + } + override fun prepareNewChapter(chapter: SChapter, manga: SManga) { val basic = Regex("""Chapter\s([0-9]+)""") when {