|
@@ -26,7 +26,10 @@ import okhttp3.OkHttpClient
|
|
|
import okhttp3.RequestBody.Companion.toRequestBody
|
|
|
import tachiyomi.core.util.lang.withIOContext
|
|
|
import uy.kohesive.injekt.injectLazy
|
|
|
-import java.util.Calendar
|
|
|
+import java.time.Instant
|
|
|
+import java.time.LocalDate
|
|
|
+import java.time.ZoneId
|
|
|
+import java.time.ZonedDateTime
|
|
|
import kotlin.time.Duration.Companion.minutes
|
|
|
|
|
|
class AnilistApi(val client: OkHttpClient, interceptor: AnilistInterceptor) {
|
|
@@ -328,13 +331,15 @@ class AnilistApi(val client: OkHttpClient, interceptor: AnilistInterceptor) {
|
|
|
|
|
|
private fun parseDate(struct: JsonObject, dateKey: String): Long {
|
|
|
return try {
|
|
|
- val date = Calendar.getInstance()
|
|
|
- date.set(
|
|
|
- struct[dateKey]!!.jsonObject["year"]!!.jsonPrimitive.int,
|
|
|
- struct[dateKey]!!.jsonObject["month"]!!.jsonPrimitive.int - 1,
|
|
|
- struct[dateKey]!!.jsonObject["day"]!!.jsonPrimitive.int,
|
|
|
- )
|
|
|
- date.timeInMillis
|
|
|
+ return LocalDate
|
|
|
+ .of(
|
|
|
+ struct[dateKey]!!.jsonObject["year"]!!.jsonPrimitive.int,
|
|
|
+ struct[dateKey]!!.jsonObject["month"]!!.jsonPrimitive.int,
|
|
|
+ struct[dateKey]!!.jsonObject["day"]!!.jsonPrimitive.int,
|
|
|
+ )
|
|
|
+ .atStartOfDay(ZoneId.systemDefault())
|
|
|
+ .toInstant()
|
|
|
+ .toEpochMilli()
|
|
|
} catch (_: Exception) {
|
|
|
0L
|
|
|
}
|
|
@@ -349,12 +354,11 @@ class AnilistApi(val client: OkHttpClient, interceptor: AnilistInterceptor) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- val calendar = Calendar.getInstance()
|
|
|
- calendar.timeInMillis = dateValue
|
|
|
+ val dateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(dateValue), ZoneId.systemDefault())
|
|
|
return buildJsonObject {
|
|
|
- put("year", calendar.get(Calendar.YEAR))
|
|
|
- put("month", calendar.get(Calendar.MONTH) + 1)
|
|
|
- put("day", calendar.get(Calendar.DAY_OF_MONTH))
|
|
|
+ put("year", dateTime.year)
|
|
|
+ put("month", dateTime.monthValue)
|
|
|
+ put("day", dateTime.dayOfMonth)
|
|
|
}
|
|
|
}
|
|
|
|