Ver código fonte

js 列表规则及列表子项规则中支持 baseUrlWithOptions 变量

Nihility 2 anos atrás
pai
commit
d27d4f5e57

+ 2 - 1
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)|

+ 8 - 0
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

+ 1 - 0
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<String, String>()
+    var optionStr: String = ""
     private var urlNoQuery: String = ""
     private var queryStr: String? = null
     private val fieldMap = LinkedHashMap<String, String>()

+ 1 - 1
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 {