From 1fabd3c4d8c29bf2d402e2ac14571e7fea228de5 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Mon, 21 Apr 2025 16:30:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/web/help/md/jsHelp.md | 2 ++ app/src/main/java/io/legado/app/model/SharedJsScope.kt | 10 +++++++++- .../app/ui/book/source/edit/BookSourceEditViewModel.kt | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/assets/web/help/md/jsHelp.md b/app/src/main/assets/web/help/md/jsHelp.md index 4f0e03e97..a7e04c473 100644 --- a/app/src/main/assets/web/help/md/jsHelp.md +++ b/app/src/main/assets/web/help/md/jsHelp.md @@ -17,6 +17,8 @@ > 不同的书源规则中支持的调用的Java类和方法可能有所不同 +> 注意使用 `const` 声明的变量不支持块级作用域,在循环里使用会出现值不变的问题,请改用 `var` 声明 + |变量名|调用类| |------|-----| |java|当前类| diff --git a/app/src/main/java/io/legado/app/model/SharedJsScope.kt b/app/src/main/java/io/legado/app/model/SharedJsScope.kt index 36b6388a1..b2bfe23b1 100644 --- a/app/src/main/java/io/legado/app/model/SharedJsScope.kt +++ b/app/src/main/java/io/legado/app/model/SharedJsScope.kt @@ -56,7 +56,7 @@ object SharedJsScope { url(value) }.body } - if (js !== null) { + if (js != null) { aCache.put(fileName, js) } else { throw NoStackTraceException("下载jsLib-${value}失败") @@ -76,4 +76,12 @@ object SharedJsScope { return scope } + fun remove(jsLib: String?) { + if (jsLib.isNullOrBlank()) { + return + } + val key = MD5Utils.md5Encode(jsLib) + scopeMap.remove(key) + } + } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt index 80c043064..553b34d80 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt @@ -14,6 +14,7 @@ import io.legado.app.help.http.newCallStrResponse import io.legado.app.help.http.okHttpClient import io.legado.app.help.source.clearExploreKindsCache import io.legado.app.help.storage.ImportOldData +import io.legado.app.model.SharedJsScope import io.legado.app.utils.GSON import io.legado.app.utils.fromJsonArray import io.legado.app.utils.fromJsonObject @@ -57,6 +58,9 @@ class BookSourceEditViewModel(application: Application) : BaseViewModel(applicat if (oldSource.exploreUrl != source.exploreUrl) { oldSource.clearExploreKindsCache() } + if (oldSource.jsLib != source.jsLib) { + SharedJsScope.remove(oldSource.jsLib) + } } bookSource?.let { appDb.bookSourceDao.delete(it)