This commit is contained in:
kunfei
2022-10-16 22:44:51 +08:00
parent 52d0ba8b60
commit db68c165b3
2 changed files with 20 additions and 9 deletions
@@ -189,6 +189,22 @@ object WebBook {
}
}
fun runPreUpdateJs(bookSource: BookSource, book: Book): Result<Boolean> {
return kotlin.runCatching {
val preUpdateJs = bookSource.ruleToc?.preUpdateJs
if (!preUpdateJs.isNullOrBlank()) {
kotlin.runCatching {
AnalyzeRule(book, bookSource).evalJS(preUpdateJs)
}.onFailure {
AppLog.put("执行preUpdateJs规则失败 书源:${bookSource.bookSourceName}", it)
throw it
}
return@runCatching true
}
return@runCatching false
}
}
suspend fun getChapterListAwait(
bookSource: BookSource,
book: Book,
@@ -196,14 +212,8 @@ object WebBook {
): Result<List<BookChapter>> {
book.type = bookSource.getBookType()
return kotlin.runCatching {
val preUpdateJs = bookSource.ruleToc?.preUpdateJs
if (runPerJs && !preUpdateJs.isNullOrBlank()) {
kotlin.runCatching {
AnalyzeRule(book, bookSource).evalJS(preUpdateJs)
}.onFailure {
AppLog.put("执行preUpdateJs规则失败 书源:${bookSource.bookSourceName}", it)
throw it
}
if (runPerJs) {
runPreUpdateJs(bookSource, book).getOrThrow()
}
if (book.bookUrl == book.tocUrl && !book.tocHtml.isNullOrEmpty()) {
BookChapterList.analyzeChapterList(
@@ -122,10 +122,11 @@ class MainViewModel(application: Application) : BaseViewModel(application) {
upTocAdd(bookUrl)
execute(context = upTocPool) {
val oldBook = book.copy()
WebBook.runPreUpdateJs(source, book)
if (book.tocUrl.isBlank()) {
WebBook.getBookInfoAwait(source, book)
}
val toc = WebBook.getChapterListAwait(source, book, true).getOrThrow()
val toc = WebBook.getChapterListAwait(source, book).getOrThrow()
book.removeType(BookType.updateError)
if (book.bookUrl == bookUrl) {
appDb.bookDao.update(book)