From 79c5ab8dbb1dac657208babcfadcae677f0df407 Mon Sep 17 00:00:00 2001 From: Nihility Date: Sun, 8 Sep 2024 18:33:51 +0800 Subject: [PATCH] =?UTF-8?q?js=20=E5=88=97=E8=A1=A8=E8=A7=84=E5=88=99?= =?UTF-8?q?=E5=8F=8A=E5=88=97=E8=A1=A8=E5=AD=90=E9=A1=B9=E8=A7=84=E5=88=99?= =?UTF-8?q?=E4=B8=AD=E6=94=AF=E6=8C=81=20baseUrlWithOptions=20=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/web/help/md/jsHelp.md | 3 ++- .../java/io/legado/app/model/analyzeRule/AnalyzeRule.kt | 8 ++++++++ .../java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt | 1 + app/src/main/java/io/legado/app/model/webBook/BookList.kt | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/assets/web/help/md/jsHelp.md b/app/src/main/assets/web/help/md/jsHelp.md index 5bdff919b..efd6bc6da 100644 --- a/app/src/main/assets/web/help/md/jsHelp.md +++ b/app/src/main/assets/web/help/md/jsHelp.md @@ -20,7 +20,8 @@ |变量名|调用类| |------|-----| |java|当前类| -|baseUrl|当前url,String | +|baseUrl|String,当前 url,如 `https://example.com/page/1`| +|baseUrlWithOptions|String,带参数的当前 url,如 `https://example.com/page/1,{"webView": true}`| |result|上一步的结果| |book|[书籍类](https://github.com/gedoor/legado/blob/master/app/src/main/java/io/legado/app/data/entities/Book.kt)| |chapter|[章节类](https://github.com/gedoor/legado/blob/master/app/src/main/java/io/legado/app/data/entities/BookChapter.kt)| 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 24bcd37ac..5bf2725c4 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 @@ -54,6 +54,8 @@ class AnalyzeRule( private set var baseUrl: String? = null private set + var optionStr: String = "{}" + private set var redirectUrl: URL? = null private set private var isJSON: Boolean = false @@ -94,6 +96,11 @@ class AnalyzeRule( return this } + fun setOption(option: String): AnalyzeRule { + optionStr = option + return this + } + fun setRedirectUrl(url: String): URL? { try { redirectUrl = URL(url) @@ -747,6 +754,7 @@ class AnalyzeRule( bindings["book"] = book bindings["result"] = result bindings["baseUrl"] = baseUrl + bindings["baseUrlWithOptions"] = "$baseUrl,$optionStr" bindings["chapter"] = chapter bindings["title"] = chapter?.title bindings["src"] = content 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 a070a69f6..814c3ec5d 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 @@ -76,6 +76,7 @@ class AnalyzeUrl( var type: String? = null private set val headerMap = HashMap() + var optionStr: String = "" private var urlNoQuery: String = "" private var queryStr: String? = null private val fieldMap = LinkedHashMap() diff --git a/app/src/main/java/io/legado/app/model/webBook/BookList.kt b/app/src/main/java/io/legado/app/model/webBook/BookList.kt index d9f233dcf..f15f8f048 100644 --- a/app/src/main/java/io/legado/app/model/webBook/BookList.kt +++ b/app/src/main/java/io/legado/app/model/webBook/BookList.kt @@ -43,7 +43,7 @@ object BookList { Debug.log(bookSource.bookSourceUrl, "≡获取成功:${analyzeUrl.ruleUrl}") Debug.log(bookSource.bookSourceUrl, body, state = 10) val analyzeRule = AnalyzeRule(ruleData, bookSource) - analyzeRule.setContent(body).setBaseUrl(baseUrl) + analyzeRule.setContent(body).setBaseUrl(baseUrl).setOption(analyzeUrl.optionStr) analyzeRule.setRedirectUrl(baseUrl) analyzeRule.setCoroutineContext(coroutineContext) if (isSearch) bookSource.bookUrlPattern?.let {