Scantrad - date parsing fix (#1984)

This commit is contained in:
Mike 2020-01-05 17:27:43 -05:00 committed by arkon
parent 9c74b76642
commit e2eca020a9
2 changed files with 47 additions and 36 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: Scantrad' appName = 'Tachiyomi: Scantrad'
pkgNameSuffix = 'fr.scantrad' pkgNameSuffix = 'fr.scantrad'
extClass = '.Scantrad' extClass = '.Scantrad'
extVersionCode = 3 extVersionCode = 4
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -10,8 +10,11 @@ import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.util.* import java.util.Calendar
import java.util.Locale
import java.text.SimpleDateFormat
import rx.Observable import rx.Observable
import java.lang.Exception
class Scantrad : ParsedHttpSource() { class Scantrad : ParsedHttpSource() {
@ -132,41 +135,49 @@ class Scantrad : ParsedHttpSource() {
} }
private fun parseChapterDate(date: String): Long { private fun parseChapterDate(date: String): Long {
val value = date.split(" ")[3].toInt() val value = date.split(" ")[3].toIntOrNull()
return when (date.split(" ")[4]) { return if (value != null) {
"minute", "minutes" -> Calendar.getInstance().apply { when (date.split(" ")[4]) {
add(Calendar.MINUTE, value * -1) "minute", "minutes" -> Calendar.getInstance().apply {
set(Calendar.SECOND, 0) add(Calendar.MINUTE, value * -1)
set(Calendar.MILLISECOND, 0) set(Calendar.SECOND, 0)
}.timeInMillis set(Calendar.MILLISECOND, 0)
"heure", "heures" -> Calendar.getInstance().apply { }.timeInMillis
add(Calendar.HOUR_OF_DAY, value * -1) "heure", "heures" -> Calendar.getInstance().apply {
set(Calendar.SECOND, 0) add(Calendar.HOUR_OF_DAY, value * -1)
set(Calendar.MILLISECOND, 0) set(Calendar.SECOND, 0)
}.timeInMillis set(Calendar.MILLISECOND, 0)
"jour", "jours" -> Calendar.getInstance().apply { }.timeInMillis
add(Calendar.DATE, value * -1) "jour", "jours" -> Calendar.getInstance().apply {
set(Calendar.SECOND, 0) add(Calendar.DATE, value * -1)
set(Calendar.MILLISECOND, 0) set(Calendar.SECOND, 0)
}.timeInMillis set(Calendar.MILLISECOND, 0)
"semaine", "semaines" -> Calendar.getInstance().apply { }.timeInMillis
add(Calendar.DATE, value * 7 * -1) "semaine", "semaines" -> Calendar.getInstance().apply {
set(Calendar.SECOND, 0) add(Calendar.DATE, value * 7 * -1)
set(Calendar.MILLISECOND, 0) set(Calendar.SECOND, 0)
}.timeInMillis set(Calendar.MILLISECOND, 0)
"mois" -> Calendar.getInstance().apply { }.timeInMillis
add(Calendar.MONTH, value * -1) "mois" -> Calendar.getInstance().apply {
set(Calendar.SECOND, 0) add(Calendar.MONTH, value * -1)
set(Calendar.MILLISECOND, 0) set(Calendar.SECOND, 0)
}.timeInMillis set(Calendar.MILLISECOND, 0)
"an", "ans" -> Calendar.getInstance().apply { }.timeInMillis
add(Calendar.YEAR, value * -1) "an", "ans", "année" -> Calendar.getInstance().apply {
set(Calendar.SECOND, 0) add(Calendar.YEAR, value * -1)
set(Calendar.MILLISECOND, 0) set(Calendar.SECOND, 0)
}.timeInMillis set(Calendar.MILLISECOND, 0)
else -> { }.timeInMillis
return 0 else -> {
return 0L
}
}
} else {
try {
SimpleDateFormat("dd MMM yyyy", Locale.FRENCH).parse(date.substringAfter("le ")).time
} catch (_: Exception) {
0L
} }
} }
} }