pull/52/head
kunfei 6 years ago
parent b5dcd64b97
commit 6f62548c0f
  1. 54
      app/src/main/java/io/legado/app/help/storage/Restore.kt

@ -14,10 +14,14 @@ import io.legado.app.data.entities.ReplaceRule
import io.legado.app.data.entities.RssSource import io.legado.app.data.entities.RssSource
import io.legado.app.help.FileHelp import io.legado.app.help.FileHelp
import io.legado.app.help.ReadBookConfig import io.legado.app.help.ReadBookConfig
import io.legado.app.help.coroutine.Coroutine
import io.legado.app.help.storage.Backup.defaultPath import io.legado.app.help.storage.Backup.defaultPath
import io.legado.app.help.storage.Backup.legadoPath import io.legado.app.help.storage.Backup.legadoPath
import io.legado.app.utils.* import io.legado.app.utils.*
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.jetbrains.anko.defaultSharedPreferences import org.jetbrains.anko.defaultSharedPreferences
import org.jetbrains.anko.doAsync import org.jetbrains.anko.doAsync
import org.jetbrains.anko.toast import org.jetbrains.anko.toast
@ -100,8 +104,8 @@ object Restore {
} }
fun importYueDuData(context: Context) { fun importYueDuData(context: Context) {
Coroutine.async { GlobalScope.launch(IO) {
// 导入书架 try {// 导入书架
val shelfFile = FileHelp.getFile(defaultPath + File.separator + "myBookShelf.json") val shelfFile = FileHelp.getFile(defaultPath + File.separator + "myBookShelf.json")
val books = mutableListOf<Book>() val books = mutableListOf<Book>()
val items: List<Map<String, Any>> = jsonPath.parse(shelfFile.readText()).read("$") val items: List<Map<String, Any>> = jsonPath.parse(shelfFile.readText()).read("$")
@ -141,16 +145,16 @@ object Restore {
books.add(book) books.add(book)
} }
App.db.bookDao().insert(*books.toTypedArray()) App.db.bookDao().insert(*books.toTypedArray())
books withContext(Main) {
}.onSuccess { context.toast("成功导入书籍${books.size}")
context.toast("成功导入书籍${it?.size}") }
}.onError { } catch (e: Exception) {
context.toast("导入书籍失败\n${it.localizedMessage}") context.toast("导入书籍失败\n${e.localizedMessage}")
} }
Coroutine.async { try {// Book source
// Book source val sourceFile =
val sourceFile = FileHelp.getFile(defaultPath + File.separator + "myBookSource.json") FileHelp.getFile(defaultPath + File.separator + "myBookSource.json")
val bookSources = mutableListOf<BookSource>() val bookSources = mutableListOf<BookSource>()
val items: List<Map<String, Any>> = jsonPath.parse(sourceFile.readText()).read("$") val items: List<Map<String, Any>> = jsonPath.parse(sourceFile.readText()).read("$")
for (item in items) { for (item in items) {
@ -160,16 +164,16 @@ object Restore {
} }
} }
App.db.bookSourceDao().insert(*bookSources.toTypedArray()) App.db.bookSourceDao().insert(*bookSources.toTypedArray())
bookSources withContext(Main) {
}.onSuccess { context.toast("成功导入书源${bookSources.size}")
context.toast("成功导入书源${it?.size}") }
}.onError { } catch (e: Exception) {
context.toast("导入源失败\n${it.localizedMessage}") context.toast("导入源失败\n${e.localizedMessage}")
} }
Coroutine.async { try {// Replace rules
// Replace rules val ruleFile =
val ruleFile = FileHelp.getFile(defaultPath + File.separator + "myBookReplaceRule.json") FileHelp.getFile(defaultPath + File.separator + "myBookReplaceRule.json")
val replaceRules = mutableListOf<ReplaceRule>() val replaceRules = mutableListOf<ReplaceRule>()
val items: List<Map<String, Any>> = jsonPath.parse(ruleFile.readText()).read("$") val items: List<Map<String, Any>> = jsonPath.parse(ruleFile.readText()).read("$")
val existingRules = App.db.replaceRuleDao().all.map { it.pattern }.toSet() val existingRules = App.db.replaceRuleDao().all.map { it.pattern }.toSet()
@ -188,12 +192,12 @@ object Restore {
replaceRules.add(rule) replaceRules.add(rule)
} }
App.db.replaceRuleDao().insert(*replaceRules.toTypedArray()) App.db.replaceRuleDao().insert(*replaceRules.toTypedArray())
replaceRules withContext(Main) {
}.onSuccess { context.toast("成功导入替换规则${replaceRules.size}")
context.toast("成功导入替换规则${it?.size}") }
}.onError { } catch (e: Exception) {
context.toast("导入替换规则失败\n${it.localizedMessage}") context.toast("导入替换规则失败\n${e.localizedMessage}")
}
} }
} }
} }
Loading…
Cancel
Save