Horis пре 3 година
родитељ
комит
e23bb57dda

+ 1 - 1
app/src/main/java/io/legado/app/help/book/BookHelp.kt

@@ -111,7 +111,7 @@ object BookHelp {
         ).writeText(content)
     }
 
-    private suspend fun saveImages(
+    suspend fun saveImages(
         bookSource: BookSource,
         book: Book,
         bookChapter: BookChapter,

+ 21 - 1
app/src/main/java/io/legado/app/model/CacheBook.kt

@@ -11,6 +11,7 @@ import io.legado.app.data.entities.BookSource
 import io.legado.app.exception.ConcurrentException
 import io.legado.app.help.book.BookHelp
 import io.legado.app.help.book.isLocal
+import io.legado.app.help.coroutine.Coroutine
 import io.legado.app.model.webBook.WebBook
 import io.legado.app.service.CacheBookService
 import io.legado.app.utils.postEvent
@@ -247,12 +248,31 @@ object CacheBook {
                 waitDownloadSet.remove(chapterIndex)
                 return
             }
-            if (BookHelp.hasContent(book, chapter)) {
+            if (BookHelp.hasImageContent(book, chapter)) {
                 waitDownloadSet.remove(chapterIndex)
                 return
             }
             waitDownloadSet.remove(chapterIndex)
             onDownloadSet.add(chapterIndex)
+            if (BookHelp.hasContent(book, chapter)) {
+                Coroutine.async {
+                    BookHelp.getContent(book, chapter)?.let {
+                        BookHelp.saveImages(bookSource, book, chapter, it)
+                    }
+                }.onSuccess {
+                    onSuccess(chapterIndex)
+                }.onError {
+                    onPreError(chapterIndex, it)
+                    //出现错误等待一秒后重新加入待下载列表
+                    delay(1000)
+                    onPostError(chapterIndex, it, chapter.title)
+                }.onCancel {
+                    onCancel(chapterIndex)
+                }.onFinally {
+                    onFinally()
+                }
+                return
+            }
             WebBook.getContent(
                 scope,
                 bookSource,

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/cache/CacheViewModel.kt

@@ -65,7 +65,7 @@ class CacheViewModel(application: Application) : BaseViewModel(application) {
                     val cacheNames = BookHelp.getChapterFiles(book)
                     if (cacheNames.isNotEmpty()) {
                         appDb.bookChapterDao.getChapterList(book.bookUrl).forEach { chapter ->
-                            if (cacheNames.contains(chapter.getFileName())) {
+                            if (cacheNames.contains(chapter.getFileName()) || chapter.isVolume) {
                                 chapterCaches.add(chapter.url)
                             }
                         }