From 1ca13b4697a6640eaba0dabaeb298ba18813be74 Mon Sep 17 00:00:00 2001 From: nedius <38085921+nedius@users.noreply.github.com> Date: Thu, 18 Jul 2024 13:48:04 +0300 Subject: [PATCH] LibGroup: fix crash on null token (#4071) fix crash on null token --- lib-multisrc/libgroup/build.gradle.kts | 2 +- .../kanade/tachiyomi/multisrc/libgroup/LibGroup.kt | 6 +++++- .../tachiyomi/multisrc/libgroup/LibGroupDto.kt | 12 +++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib-multisrc/libgroup/build.gradle.kts b/lib-multisrc/libgroup/build.gradle.kts index 516ffede3..2fc011acf 100644 --- a/lib-multisrc/libgroup/build.gradle.kts +++ b/lib-multisrc/libgroup/build.gradle.kts @@ -2,4 +2,4 @@ plugins { id("lib-multisrc") } -baseVersionCode = 29 +baseVersionCode = 30 diff --git a/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroup.kt b/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroup.kt index 0266b1ca3..bd7551f40 100644 --- a/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroup.kt +++ b/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroup.kt @@ -188,7 +188,11 @@ abstract class LibGroup( } else { it.replace("\\", "") } - returnValue = str.parseAs() + str.parseAs().let { auth -> + if (auth.isValid()) { + returnValue = auth + } + } } latch.countDown() } diff --git a/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroupDto.kt b/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroupDto.kt index 18cd1c34d..6a7de9905 100644 --- a/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroupDto.kt +++ b/lib-multisrc/libgroup/src/eu/kanade/tachiyomi/multisrc/libgroup/LibGroupDto.kt @@ -266,8 +266,8 @@ class Pages( @Serializable class AuthToken( - private val auth: Auth, - private val token: Token, + private val auth: Auth?, + private val token: Token?, ) { @Serializable class Auth( @@ -282,13 +282,15 @@ class AuthToken( @SerialName("access_token") val accessToken: String, ) + fun isValid(): Boolean = auth != null && token != null + fun isExpired(): Boolean { val currentTime = System.currentTimeMillis() - val expiresIn = token.timestamp + (token.expiresIn * 1000) + val expiresIn = token!!.timestamp + (token.expiresIn * 1000) return expiresIn < currentTime } - fun getToken(): String = "${token.tokenType} ${token.accessToken}" + fun getToken(): String = "${token!!.tokenType} ${token.accessToken}" - fun getUserId(): Int = auth.id + fun getUserId(): Int = auth!!.id }