Kaynağa Gözat

fix preUpdateJs rule

821938089 4 yıl önce
ebeveyn
işleme
b1a716ba7c

+ 5 - 0
app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt

@@ -18,6 +18,7 @@ import io.legado.app.help.BookHelp
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.model.BookCover
 import io.legado.app.model.ReadBook
+import io.legado.app.model.analyzeRule.AnalyzeRule
 import io.legado.app.model.localBook.LocalBook
 import io.legado.app.model.webBook.WebBook
 import io.legado.app.utils.postEvent
@@ -153,6 +154,10 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) {
                 chapterListData.postValue(emptyList())
             } else {
                 bookSource?.let { bookSource ->
+                    val preUpdateJs = bookSource.ruleToc?.preUpdateJs
+                    if (!preUpdateJs.isNullOrBlank()) {
+                        AnalyzeRule(book, bookSource).evalJS(preUpdateJs)
+                    }
                     WebBook.getChapterList(this, bookSource, book)
                         .onSuccess(IO) {
                             if (inBookshelf) {

+ 5 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt

@@ -21,6 +21,7 @@ import io.legado.app.help.config.AppConfig
 import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.model.ReadAloud
 import io.legado.app.model.ReadBook
+import io.legado.app.model.analyzeRule.AnalyzeRule
 import io.legado.app.model.localBook.LocalBook
 import io.legado.app.model.webBook.WebBook
 import io.legado.app.service.BaseReadAloudService
@@ -144,6 +145,10 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
             }
         } else {
             ReadBook.bookSource?.let {
+                val preUpdateJs = it.ruleToc?.preUpdateJs
+                if (!preUpdateJs.isNullOrBlank()) {
+                    AnalyzeRule(book, it).evalJS(preUpdateJs)
+                }
                 WebBook.getChapterList(viewModelScope, it, book)
                     .onSuccess(IO) { cList ->
                         appDb.bookChapterDao.insert(*cList.toTypedArray())