Horis 1 rok temu
rodzic
commit
afd6f9cbb2

+ 1 - 1
app/src/main/assets/web/help/md/jsHelp.md

@@ -87,7 +87,7 @@ java.getElements(ruleStr: String)
 
 * 重新搜索书籍/重新获取目录url
 
-> 可以在刷新目录之前使用,有些书源书籍地址和目录url会变
+> 只能在刷新目录之前使用,有些书源书籍地址和目录url会变
 
 ```js
 java.reGetBook()

+ 4 - 15
app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt

@@ -48,7 +48,8 @@ import kotlin.coroutines.EmptyCoroutineContext
 @Suppress("unused", "RegExpRedundantEscape", "MemberVisibilityCanBePrivate")
 class AnalyzeRule(
     var ruleData: RuleDataInterface? = null,
-    private val source: BaseSource? = null
+    private val source: BaseSource? = null,
+    private val preUpdateJs: Boolean = false
 ) : JsExtensions {
 
     val book get() = ruleData as? BaseBook
@@ -815,6 +816,7 @@ class AnalyzeRule(
      * 重新获取book
      */
     fun reGetBook() {
+        if (!preUpdateJs) return
         val bookSource = source as? BookSource
         val book = book as? Book
         if (bookSource == null || book == null) return
@@ -832,24 +834,11 @@ class AnalyzeRule(
         }
     }
 
-    /**
-     * 刷新详情页
-     */
-    fun refreshBook() {
-        val bookSource = source as? BookSource
-        val book = book as? Book
-        if (bookSource == null || book == null) return
-        runBlocking(coroutineContext) {
-            withTimeout(1800000) {
-                WebBook.getBookInfoAwait(bookSource, book, false)
-            }
-        }
-    }
-
     /**
      * 更新tocUrl,有些书源目录url定期更新,可以在js调用更新
      */
     fun refreshTocUrl() {
+        if (!preUpdateJs) return
         val bookSource = source as? BookSource
         val book = book as? Book
         if (bookSource == null || book == null) return

+ 1 - 1
app/src/main/java/io/legado/app/model/webBook/WebBook.kt

@@ -212,7 +212,7 @@ object WebBook {
         return kotlin.runCatching {
             val preUpdateJs = bookSource.ruleToc?.preUpdateJs
             if (!preUpdateJs.isNullOrBlank()) {
-                AnalyzeRule(book, bookSource)
+                AnalyzeRule(book, bookSource, true)
                     .setCoroutineContext(coroutineContext)
                     .evalJS(preUpdateJs)
             }