This commit is contained in:
Horis
2023-03-27 14:00:42 +08:00
parent dc964be830
commit aa8b835875
3 changed files with 21 additions and 9 deletions
@@ -200,7 +200,7 @@ object BookController {
fun saveBook(postData: String?): ReturnData { fun saveBook(postData: String?): ReturnData {
val returnData = ReturnData() val returnData = ReturnData()
GSON.fromJsonObject<Book>(postData).getOrNull()?.let { book -> GSON.fromJsonObject<Book>(postData).getOrNull()?.let { book ->
appDb.bookDao.insert(book) book.save()
AppWebDav.uploadBookProgress(book) AppWebDav.uploadBookProgress(book)
return returnData.setData("") return returnData.setData("")
} }
@@ -62,7 +62,17 @@ object Restore {
.forEach { book -> .forEach { book ->
book.coverUrl = LocalBook.getCoverPath(book) book.coverUrl = LocalBook.getCoverPath(book)
} }
appDb.bookDao.insert(*it.toTypedArray()) val updateBooks = arrayListOf<Book>()
val newBooks = arrayListOf<Book>()
it.forEach { book ->
if (appDb.bookDao.has(book.bookUrl) == true) {
updateBooks.add(book)
} else {
newBooks.add(book)
}
}
appDb.bookDao.update(*updateBooks.toTypedArray())
appDb.bookDao.insert(*newBooks.toTypedArray())
} }
fileToListT<Bookmark>(path, "bookmark.json")?.let { fileToListT<Bookmark>(path, "bookmark.json")?.let {
appDb.bookmarkDao.insert(*it.toTypedArray()) appDb.bookmarkDao.insert(*it.toTypedArray())
@@ -91,13 +91,15 @@ class CacheBookService : BaseService() {
val cacheBook = CacheBook.getOrCreate(bookUrl) ?: return@execute val cacheBook = CacheBook.getOrCreate(bookUrl) ?: return@execute
val chapterCount = appDb.bookChapterDao.getChapterCount(bookUrl) val chapterCount = appDb.bookChapterDao.getChapterCount(bookUrl)
if (chapterCount == 0) { if (chapterCount == 0) {
WebBook.getChapterListAwait(cacheBook.bookSource, cacheBook.book) val name = cacheBook.book.name
.onFailure { WebBook.getChapterListAwait(cacheBook.bookSource, cacheBook.book).onFailure {
AppLog.put("缓存书籍没有目录且加载目录失败\n${it.localizedMessage}", it) cacheBook.book.totalChapterNum = 0
appCtx.toastOnUi("缓存书籍没有目录且加载目录失败\n${it.localizedMessage}") AppLog.put("$name》目录为空且加载目录失败\n${it.localizedMessage}", it)
}.getOrNull()?.let { toc -> appCtx.toastOnUi("$name》目录为空且加载目录失败\n${it.localizedMessage}")
appDb.bookChapterDao.insert(*toc.toTypedArray()) }.getOrNull()?.let { toc ->
} appDb.bookChapterDao.insert(*toc.toTypedArray())
}
cacheBook.book.save()
} }
val end2 = if (end == 0) { val end2 = if (end == 0) {
appDb.bookChapterDao.getChapterCount(bookUrl) appDb.bookChapterDao.getChapterCount(bookUrl)