From a3f4efe09e4532aa570a93ded6f05fc6de439ced Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Sun, 26 Mar 2023 21:47:17 +0800 Subject: [PATCH] NativeObject MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持## --- app/src/main/assets/updateLog.md | 2 +- .../io/legado/app/model/analyzeRule/AnalyzeRule.kt | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 2234e65ea..31b27b9e9 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -18,7 +18,7 @@ * 修复bug * 详情页下拉刷新 * 导出为本地文件时不保留vip标识 -* 列表结果为NativeObject时支持{{}}@get@put规则 +* 列表结果为NativeObject时支持{{}}@get@put##规则 ``` {bookId: 1} https://www.example.com/book/{{result.bookId}} diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt index d3170b7ff..147e7b212 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt @@ -144,12 +144,14 @@ class AnalyzeRule( result = content if (result is NativeObject) { val sourceRule = ruleList.first() + putRule(sourceRule.putMap) + sourceRule.makeUpRule(result) result = if (sourceRule.getParamSize() > 1) { - putRule(sourceRule.putMap) - sourceRule.makeUpRule(result) result[sourceRule.rule]?.toString() ?: sourceRule.rule } else { result[sourceRule.rule]?.toString() + }?.let { + replaceRegex(it.toString(), sourceRule) } } else { for (sourceRule in ruleList) { @@ -227,12 +229,14 @@ class AnalyzeRule( result = content if (result is NativeObject) { val sourceRule = ruleList.first() + putRule(sourceRule.putMap) + sourceRule.makeUpRule(result) result = if (sourceRule.getParamSize() > 1) { - putRule(sourceRule.putMap) - sourceRule.makeUpRule(result) result[sourceRule.rule]?.toString() ?: sourceRule.rule } else { result[sourceRule.rule]?.toString() + }?.let { + replaceRegex(it.toString(), sourceRule) } } else { for (sourceRule in ruleList) {