This commit is contained in:
kunfei
2022-03-19 18:23:31 +08:00
parent 84d9ee4923
commit f5a25141de
2 changed files with 28 additions and 19 deletions
+4 -17
View File
@@ -48,8 +48,8 @@ class App : MultiDexApplication() {
//清除过期数据 //清除过期数据
appDb.cacheDao.clearDeadline(System.currentTimeMillis()) appDb.cacheDao.clearDeadline(System.currentTimeMillis())
if (getPrefBoolean(PreferKey.autoClearExpired, true)) { if (getPrefBoolean(PreferKey.autoClearExpired, true)) {
appDb.searchBookDao val clearTime = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1)
.clearExpired(System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1)) appDb.searchBookDao.clearExpired(clearTime)
} }
RuleBigDataHelp.clearInvalid() RuleBigDataHelp.clearInvalid()
//初始化简繁转换引擎 //初始化简繁转换引擎
@@ -58,21 +58,8 @@ class App : MultiDexApplication() {
2 -> ChineseUtils.s2t("初始化") 2 -> ChineseUtils.s2t("初始化")
} }
//同步阅读记录 //同步阅读记录
if (!AppConfig.syncBookProgress) return@async if (AppConfig.syncBookProgress) {
val books = appDb.bookDao.all AppWebDav.downloadAllBookProgress()
books.forEach { book ->
AppWebDav.getBookProgress(book)?.let { bookProgress ->
if (bookProgress.durChapterIndex > book.durChapterIndex ||
(bookProgress.durChapterIndex == book.durChapterIndex &&
bookProgress.durChapterPos > book.durChapterPos)
) {
book.durChapterIndex = bookProgress.durChapterIndex
book.durChapterPos = bookProgress.durChapterPos
book.durChapterTitle = bookProgress.durChapterTitle
book.durChapterTime = bookProgress.durChapterTime
appDb.bookDao.update(book)
}
}
} }
} }
} }
@@ -5,6 +5,7 @@ import android.os.Handler
import android.os.Looper import android.os.Looper
import io.legado.app.R import io.legado.app.R
import io.legado.app.constant.PreferKey import io.legado.app.constant.PreferKey
import io.legado.app.data.appDb
import io.legado.app.data.entities.Book import io.legado.app.data.entities.Book
import io.legado.app.data.entities.BookProgress import io.legado.app.data.entities.BookProgress
import io.legado.app.exception.NoStackTraceException import io.legado.app.exception.NoStackTraceException
@@ -166,6 +167,13 @@ object AppWebDav {
} }
} }
private fun getProgressUrl(book: Book): String {
return bookProgressUrl + book.name + "_" + book.author + ".json"
}
/**
* 获取书籍进度
*/
suspend fun getBookProgress(book: Book): BookProgress? { suspend fun getBookProgress(book: Book): BookProgress? {
if (initWebDav() && NetworkUtils.isAvailable()) { if (initWebDav() && NetworkUtils.isAvailable()) {
val url = getProgressUrl(book) val url = getProgressUrl(book)
@@ -179,7 +187,21 @@ object AppWebDav {
return null return null
} }
private fun getProgressUrl(book: Book): String { suspend fun downloadAllBookProgress() {
return bookProgressUrl + book.name + "_" + book.author + ".json" appDb.bookDao.all.forEach { book ->
getBookProgress(book)?.let { bookProgress ->
if (bookProgress.durChapterIndex > book.durChapterIndex ||
(bookProgress.durChapterIndex == book.durChapterIndex &&
bookProgress.durChapterPos > book.durChapterPos)
) {
book.durChapterIndex = bookProgress.durChapterIndex
book.durChapterPos = bookProgress.durChapterPos
book.durChapterTitle = bookProgress.durChapterTitle
book.durChapterTime = bookProgress.durChapterTime
appDb.bookDao.update(book)
}
}
}
} }
} }