|
@@ -15,8 +15,11 @@ import io.legado.app.service.CacheBookService
|
|
|
import io.legado.app.utils.postEvent
|
|
import io.legado.app.utils.postEvent
|
|
|
|
|
|
|
|
import io.legado.app.utils.startService
|
|
import io.legado.app.utils.startService
|
|
|
|
|
+import io.legado.app.utils.toastOnUi
|
|
|
import kotlinx.coroutines.CoroutineScope
|
|
import kotlinx.coroutines.CoroutineScope
|
|
|
import kotlinx.coroutines.delay
|
|
import kotlinx.coroutines.delay
|
|
|
|
|
+import kotlinx.coroutines.runBlocking
|
|
|
|
|
+import splitties.init.appCtx
|
|
|
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap
|
|
import java.util.concurrent.ConcurrentHashMap
|
|
|
import kotlin.coroutines.CoroutineContext
|
|
import kotlin.coroutines.CoroutineContext
|
|
@@ -173,6 +176,18 @@ object CacheBook {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
postEvent(EventBus.UP_DOWNLOAD, book.bookUrl)
|
|
postEvent(EventBus.UP_DOWNLOAD, book.bookUrl)
|
|
|
|
|
+ val chapterCount = appDb.bookChapterDao.getChapterCount(book.bookUrl)
|
|
|
|
|
+ if (chapterCount == 0) {
|
|
|
|
|
+ runBlocking {
|
|
|
|
|
+ WebBook.getChapterListAwait(this, bookSource, book)
|
|
|
|
|
+ .onFailure {
|
|
|
|
|
+ AppLog.put("缓存书籍没有目录且加载目录失败\n${it.localizedMessage}", it)
|
|
|
|
|
+ appCtx.toastOnUi("缓存书籍没有目录且加载目录失败\n${it.localizedMessage}")
|
|
|
|
|
+ }.getOrNull()
|
|
|
|
|
+ }?.let { toc ->
|
|
|
|
|
+ appDb.bookChapterDao.insert(*toc.toTypedArray())
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Synchronized
|
|
@Synchronized
|