更新章节是检查是否有目录url

pull/862/head
gedoor 4 years ago
parent e254932ae7
commit bfa9df9b48
  1. 17
      app/src/main/java/io/legado/app/ui/main/MainViewModel.kt

@ -14,7 +14,6 @@ import io.legado.app.model.webBook.WebBook
import io.legado.app.service.help.CacheBook import io.legado.app.service.help.CacheBook
import io.legado.app.utils.FileUtils import io.legado.app.utils.FileUtils
import io.legado.app.utils.postEvent import io.legado.app.utils.postEvent
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.asCoroutineDispatcher import kotlinx.coroutines.asCoroutineDispatcher
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
@ -76,21 +75,21 @@ class MainViewModel(application: Application) : BaseViewModel(application) {
postEvent(EventBus.UP_BOOK, book.bookUrl) postEvent(EventBus.UP_BOOK, book.bookUrl)
} }
appDb.bookSourceDao.getBookSource(book.origin)?.let { bookSource -> appDb.bookSourceDao.getBookSource(book.origin)?.let { bookSource ->
execute(context = upTocPool) {
val webBook = WebBook(bookSource) val webBook = WebBook(bookSource)
webBook.getChapterList(this, book, context = upTocPool) if (book.tocUrl.isBlank()) {
.timeout(60000) webBook.getBookInfoAwait(this, book)
.onSuccess(IO) { }
val toc = webBook.getChapterListAwait(this, book)
appDb.bookDao.update(book) appDb.bookDao.update(book)
appDb.bookChapterDao.delByBook(book.bookUrl) appDb.bookChapterDao.delByBook(book.bookUrl)
appDb.bookChapterDao.insert(*it.toTypedArray()) appDb.bookChapterDao.insert(*toc.toTypedArray())
if (AppConfig.preDownload) { if (AppConfig.preDownload) {
cacheBook(webBook, book) cacheBook(webBook, book)
} }
} }.onError {
.onError {
it.printStackTrace() it.printStackTrace()
} }.onFinally {
.onFinally {
synchronized(this) { synchronized(this) {
bookMap.remove(bookEntry.key) bookMap.remove(bookEntry.key)
updateList.remove(book.bookUrl) updateList.remove(book.bookUrl)

Loading…
Cancel
Save