From 331a609919775ae3dd4ca15d9fa40ac9030f7ccd Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Wed, 24 Sep 2025 19:28:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95ui=E6=94=AF=E6=8C=81js?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9E=84=E5=BB=BA=20=E6=84=9F=E8=B0=A2@Luoya?= =?UTF-8?q?cheng,https://github.com/Luoyacheng/legado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../legato/kazusa/data/entities/BaseSource.kt | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt b/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt index baa245b98..c35421ef0 100644 --- a/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt +++ b/app/src/main/java/io/legato/kazusa/data/entities/BaseSource.kt @@ -65,7 +65,25 @@ interface BaseSource : JsExtensions { } fun loginUi(): List? { - return GSON.fromJsonArray(loginUi).onFailure { + val json = loginUi?.let { + val loginJS = getLoginJs() ?: "" + try { + when { + it.startsWith("@js:") -> evalJS(loginJS + it.substring(4)){ + put("result", getLoginInfoMap()) + }.toString() + it.startsWith("") -> evalJS(loginJS + it.substring(4,it.lastIndexOf("<"))){ + put("result", getLoginInfoMap()) + }.toString() + else -> it + } + } catch (e: Throwable) { + log(e) + e.printOnDebug() + null + } + } + return GSON.fromJsonArray(json).onFailure { it.printOnDebug() }.getOrNull() } @@ -176,8 +194,9 @@ interface BaseSource : JsExtensions { } } - fun getLoginInfoMap(): Map? { - return GSON.fromJsonObject>(getLoginInfo()).getOrNull() + fun getLoginInfoMap(): Map { + val json = getLoginInfo() ?: return emptyMap() + return GSON.fromJsonObject>(json).getOrNull() ?: emptyMap() } /**