From 516be4d204b71e080dbeeeaad5de9b2038e80119 Mon Sep 17 00:00:00 2001 From: jopejoe1 <34899572+jopejoe1@users.noreply.github.com> Date: Sat, 9 Oct 2021 01:14:04 +1300 Subject: [PATCH] Hentai2Read fix date parsing (#9389) * Fixed Date Parsing * Update build.gradle --- src/en/hentai2read/build.gradle | 2 +- .../extension/en/hentai2read/Hentai2Read.kt | 58 ++++++++++--------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/src/en/hentai2read/build.gradle b/src/en/hentai2read/build.gradle index 5c7b91007..6567b62b3 100644 --- a/src/en/hentai2read/build.gradle +++ b/src/en/hentai2read/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Hentai2Read' pkgNameSuffix = 'en.hentai2read' extClass = '.Hentai2Read' - extVersionCode = 12 + extVersionCode = 13 isNsfw = true } diff --git a/src/en/hentai2read/src/eu/kanade/tachiyomi/extension/en/hentai2read/Hentai2Read.kt b/src/en/hentai2read/src/eu/kanade/tachiyomi/extension/en/hentai2read/Hentai2Read.kt index b3f95acd2..049b7a8bc 100644 --- a/src/en/hentai2read/src/eu/kanade/tachiyomi/extension/en/hentai2read/Hentai2Read.kt +++ b/src/en/hentai2read/src/eu/kanade/tachiyomi/extension/en/hentai2read/Hentai2Read.kt @@ -42,10 +42,6 @@ class Hentai2Read : ParsedHttpSource() { Pattern.compile("""'images' : \[\"(.*?)[,]?\"\]""") } - val chapterDatePattern by lazy { - Pattern.compile("""about (\d+\s+\w+\s+ago)""") - } - lateinit var nextSearchPage: String } @@ -210,37 +206,43 @@ class Hentai2Read : ParsedHttpSource() { override fun chapterFromElement(element: Element): SChapter { return SChapter.create().apply { setUrlWithoutDomain(element.attr("href")) + var time = element.select("div > small").text().substringAfter("about").substringBefore("ago") name = element.ownText().trim() - date_upload = element.select("div > small").text()?.let { - val matcher = chapterDatePattern.matcher(it) - if (matcher.find()) { - parseChapterDate(matcher.group(1)!!) - } else { - 0L - } - } ?: 0L + if (time != "") { + date_upload = parseChapterDate(time) + } } } private fun parseChapterDate(date: String): Long { - val dateWords = date.split(" ") - if (dateWords.size == 3) { - val timeAgo = Integer.parseInt(dateWords[0]) - return Calendar.getInstance().apply { - when (dateWords[1]) { - "minute", "minutes" -> Calendar.MINUTE - "hour", "hours" -> Calendar.HOUR - "day", "days" -> Calendar.DAY_OF_YEAR - "week", "weeks" -> Calendar.WEEK_OF_YEAR - "month", "months" -> Calendar.MONTH - "year", "years" -> Calendar.YEAR - else -> null - }?.let { - add(it, -timeAgo) - } + val value = date.replace(Regex("[^\\d]"), "").toInt() + + return when { + "second" in date -> Calendar.getInstance().apply { + add(Calendar.SECOND, value * -1) }.timeInMillis + "minute" in date -> Calendar.getInstance().apply { + add(Calendar.MINUTE, value * -1) + }.timeInMillis + "hour" in date -> Calendar.getInstance().apply { + add(Calendar.HOUR_OF_DAY, value * -1) + }.timeInMillis + "day" in date -> Calendar.getInstance().apply { + add(Calendar.DATE, value * -1) + }.timeInMillis + "week" in date -> Calendar.getInstance().apply { + add(Calendar.DATE, value * 7 * -1) + }.timeInMillis + "month" in date -> Calendar.getInstance().apply { + add(Calendar.MONTH, value * -1) + }.timeInMillis + "year" in date -> Calendar.getInstance().apply { + add(Calendar.YEAR, value * -1) + }.timeInMillis + else -> { + return 0 + } } - return 0L } override fun pageListParse(response: Response): List {