From b6c17132fc00527a69d97d52b9fa5010a5f6089b Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Tue, 14 Mar 2023 14:46:58 +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/model/analyzeRule/AnalyzeUrl.kt | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt index c6c332e97..b8b283136 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt @@ -113,29 +113,27 @@ class AnalyzeUrl( */ private fun analyzeJs() { var start = 0 - var tmp: String val jsMatcher = JS_PATTERN.matcher(ruleUrl) - var hasRule = true + var result = ruleUrl while (jsMatcher.find()) { - if (jsMatcher.start() > start) { - tmp = - ruleUrl.substring(start, jsMatcher.start()).trim { it <= ' ' } - if (tmp.isNotEmpty()) { - ruleUrl = tmp.replace("@result", ruleUrl) + if (jsMatcher.start() > start && start > 0) { + ruleUrl.substring(start, jsMatcher.start()).trim().let { + if (it.isNotEmpty()) { + result = it.replace("@result", result) + } } } - ruleUrl = evalJS(jsMatcher.group(2) ?: jsMatcher.group(1), ruleUrl) as String + result = evalJS(jsMatcher.group(2) ?: jsMatcher.group(1), result) as String start = jsMatcher.end() - if (jsMatcher.group(0)!!.startsWith("@js:", true)) { - hasRule = false - } - } - if (ruleUrl.length > start && hasRule) { - tmp = ruleUrl.substring(start).trim { it <= ' ' } - if (tmp.isNotEmpty()) { - ruleUrl = tmp.replace("@result", ruleUrl) + } + if (ruleUrl.length > start) { + ruleUrl.substring(start).trim().let { + if (it.isNotEmpty()) { + result = it.replace("@result", result) + } } } + ruleUrl = result } /**