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,9 +135,10 @@ 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) {
when (date.split(" ")[4]) {
"minute", "minutes" -> Calendar.getInstance().apply { "minute", "minutes" -> Calendar.getInstance().apply {
add(Calendar.MINUTE, value * -1) add(Calendar.MINUTE, value * -1)
set(Calendar.SECOND, 0) set(Calendar.SECOND, 0)
@ -160,13 +164,20 @@ class Scantrad : ParsedHttpSource() {
set(Calendar.SECOND, 0) set(Calendar.SECOND, 0)
set(Calendar.MILLISECOND, 0) set(Calendar.MILLISECOND, 0)
}.timeInMillis }.timeInMillis
"an", "ans" -> Calendar.getInstance().apply { "an", "ans", "année" -> Calendar.getInstance().apply {
add(Calendar.YEAR, value * -1) add(Calendar.YEAR, value * -1)
set(Calendar.SECOND, 0) set(Calendar.SECOND, 0)
set(Calendar.MILLISECOND, 0) set(Calendar.MILLISECOND, 0)
}.timeInMillis }.timeInMillis
else -> { else -> {
return 0 return 0L
}
}
} else {
try {
SimpleDateFormat("dd MMM yyyy", Locale.FRENCH).parse(date.substringAfter("le ")).time
} catch (_: Exception) {
0L
} }
} }
} }