Fix TimeZone issues in HeanCMS (#14900)

* Fix TimeZone issues in HeanCMS.

* Fix wrong date format pattern.

* Remove unused import.
This commit is contained in:
Alessandro Jean 2023-01-11 14:35:15 -03:00 committed by GitHub
parent fd0a489887
commit 8ad7f97c8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 11 deletions

View File

@ -5,6 +5,8 @@ import eu.kanade.tachiyomi.multisrc.heancms.HeanCms
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient
import java.text.SimpleDateFormat
import java.util.TimeZone
class ReaperScans : HeanCms(
"Reaper Scans",
@ -21,6 +23,10 @@ class ReaperScans : HeanCms(
override val coverPath: String = ""
override val dateFormat: SimpleDateFormat = super.dateFormat.apply {
timeZone = TimeZone.getTimeZone("GMT+01:00")
}
override fun getGenreList(): List<Genre> = listOf(
Genre("Artes Marciais", 2),
Genre("Aventura", 10),

View File

@ -2,6 +2,8 @@ package eu.kanade.tachiyomi.extension.es.yugenmangas
import eu.kanade.tachiyomi.multisrc.heancms.Genre
import eu.kanade.tachiyomi.multisrc.heancms.HeanCms
import java.text.SimpleDateFormat
import java.util.TimeZone
class YugenMangas : HeanCms("YugenMangas", "https://yugenmangas.com", "es") {
@ -10,6 +12,10 @@ class YugenMangas : HeanCms("YugenMangas", "https://yugenmangas.com", "es") {
override val coverPath: String = ""
override val dateFormat: SimpleDateFormat = super.dateFormat.apply {
timeZone = TimeZone.getTimeZone("UTC")
}
override fun getGenreList(): List<Genre> = listOf(
Genre("+18", 1),
Genre("Acción", 36),

View File

@ -21,6 +21,8 @@ import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import rx.Observable
import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat
import java.util.Locale
abstract class HeanCms(
override val name: String,
@ -41,6 +43,8 @@ abstract class HeanCms(
protected open val coverPath: String = "cover/"
protected open val dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ", Locale.US)
private var seriesSlugMap: Map<String, HeanCmsTitle>? = null
override fun headersBuilder(): Headers.Builder = Headers.Builder()
@ -235,7 +239,7 @@ abstract class HeanCms(
val currentTimestamp = System.currentTimeMillis()
return result.chapters.orEmpty()
.map { it.toSChapter(seriesSlug) }
.map { it.toSChapter(seriesSlug, dateFormat) }
.filter { it.date_upload <= currentTimestamp }
.reversed()
}

View File

@ -6,7 +6,6 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import org.jsoup.Jsoup
import java.text.SimpleDateFormat
import java.util.Locale
@Serializable
data class HeanCmsQuerySearchDto(
@ -94,18 +93,12 @@ data class HeanCmsChapterDto(
@SerialName("created_at") val createdAt: String,
) {
fun toSChapter(seriesSlug: String): SChapter = SChapter.create().apply {
fun toSChapter(seriesSlug: String, dateFormat: SimpleDateFormat): SChapter = SChapter.create().apply {
name = this@HeanCmsChapterDto.name.trim()
date_upload = runCatching { DATE_FORMAT.parse(createdAt.substringBefore("."))?.time }
date_upload = runCatching { dateFormat.parse(createdAt)?.time }
.getOrNull() ?: 0L
url = "/series/$seriesSlug/$slug#$id"
}
companion object {
private val DATE_FORMAT by lazy {
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.US)
}
}
}
@Serializable

View File

@ -9,7 +9,7 @@ class HeanCmsGenerator : ThemeSourceGenerator {
override val themeClass = "HeanCms"
override val baseVersionCode: Int = 8
override val baseVersionCode: Int = 9
override val sources = listOf(
SingleLang("Reaper Scans", "https://reaperscans.net", "pt-BR", overrideVersionCode = 35),