mirror of
https://github.com/tachiyomiorg/tachiyomi-extensions-inspector.git
synced 2025-02-28 22:43:38 +01:00
restore categories
This commit is contained in:
parent
a1349aa0e3
commit
fde137b3ed
@ -7,10 +7,13 @@ import com.google.gson.JsonObject
|
|||||||
import com.google.gson.JsonParser
|
import com.google.gson.JsonParser
|
||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
|
import ir.armor.tachidesk.impl.Category.createCategory
|
||||||
|
import ir.armor.tachidesk.impl.Category.getCategoryList
|
||||||
import ir.armor.tachidesk.impl.backup.legacy.LegacyBackupRestoreValidator.ValidationResult
|
import ir.armor.tachidesk.impl.backup.legacy.LegacyBackupRestoreValidator.ValidationResult
|
||||||
import ir.armor.tachidesk.impl.backup.legacy.LegacyBackupRestoreValidator.validate
|
import ir.armor.tachidesk.impl.backup.legacy.LegacyBackupRestoreValidator.validate
|
||||||
import ir.armor.tachidesk.impl.backup.legacy.models.Backup
|
import ir.armor.tachidesk.impl.backup.legacy.models.Backup
|
||||||
import ir.armor.tachidesk.impl.backup.legacy.models.DHistory
|
import ir.armor.tachidesk.impl.backup.legacy.models.DHistory
|
||||||
|
import ir.armor.tachidesk.impl.backup.models.CategoryImpl
|
||||||
import ir.armor.tachidesk.impl.backup.models.Chapter
|
import ir.armor.tachidesk.impl.backup.models.Chapter
|
||||||
import ir.armor.tachidesk.impl.backup.models.ChapterImpl
|
import ir.armor.tachidesk.impl.backup.models.ChapterImpl
|
||||||
import ir.armor.tachidesk.impl.backup.models.Manga
|
import ir.armor.tachidesk.impl.backup.models.Manga
|
||||||
@ -62,9 +65,9 @@ object LegacyBackupImport : LegacyBackupBase() {
|
|||||||
"""
|
"""
|
||||||
Restore Errors:
|
Restore Errors:
|
||||||
${
|
${
|
||||||
errors.map {
|
errors.map {
|
||||||
"${it.first} - ${it.second}"
|
"${it.first} - ${it.second}"
|
||||||
}.joinToString("\n")
|
}.joinToString("\n")
|
||||||
}
|
}
|
||||||
Restore Summary:
|
Restore Summary:
|
||||||
- Missing Sources:
|
- Missing Sources:
|
||||||
@ -77,36 +80,39 @@ object LegacyBackupImport : LegacyBackupBase() {
|
|||||||
return validationResult
|
return validationResult
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun restoreCategories(categoriesJson: JsonElement) { // TODO
|
private fun restoreCategories(jsonCategories: JsonElement) { // TODO
|
||||||
// db.inTransaction {
|
val backupCategories = parser.fromJson<List<CategoryImpl>>(jsonCategories)
|
||||||
// backupManager.restoreCategories(categoriesJson.asJsonArray)
|
val dbCategories = getCategoryList()
|
||||||
// }
|
|
||||||
//
|
// Iterate over them
|
||||||
// restoreProgress += 1
|
backupCategories.forEach { category ->
|
||||||
// showRestoreProgress(restoreProgress, restoreAmount, context.getString(R.string.categories))
|
if (dbCategories.none { it.name == category.name }) {
|
||||||
|
createCategory(category.name)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun restoreManga(mangaJson: JsonObject) {
|
private suspend fun restoreManga(mangaJson: JsonObject) {
|
||||||
val manga = parser.fromJson<MangaImpl>(
|
val manga = parser.fromJson<MangaImpl>(
|
||||||
mangaJson.get(
|
mangaJson.get(
|
||||||
Backup.MANGA
|
Backup.MANGA
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
val chapters = parser.fromJson<List<ChapterImpl>>(
|
val chapters = parser.fromJson<List<ChapterImpl>>(
|
||||||
mangaJson.get(Backup.CHAPTERS)
|
mangaJson.get(Backup.CHAPTERS)
|
||||||
?: JsonArray()
|
?: JsonArray()
|
||||||
)
|
)
|
||||||
val categories = parser.fromJson<List<String>>(
|
val categories = parser.fromJson<List<String>>(
|
||||||
mangaJson.get(Backup.CATEGORIES)
|
mangaJson.get(Backup.CATEGORIES)
|
||||||
?: JsonArray()
|
?: JsonArray()
|
||||||
)
|
)
|
||||||
val history = parser.fromJson<List<DHistory>>(
|
val history = parser.fromJson<List<DHistory>>(
|
||||||
mangaJson.get(Backup.HISTORY)
|
mangaJson.get(Backup.HISTORY)
|
||||||
?: JsonArray()
|
?: JsonArray()
|
||||||
)
|
)
|
||||||
val tracks = parser.fromJson<List<TrackImpl>>(
|
val tracks = parser.fromJson<List<TrackImpl>>(
|
||||||
mangaJson.get(Backup.TRACK)
|
mangaJson.get(Backup.TRACK)
|
||||||
?: JsonArray()
|
?: JsonArray()
|
||||||
)
|
)
|
||||||
|
|
||||||
val source = try {
|
val source = try {
|
||||||
@ -138,17 +144,18 @@ object LegacyBackupImport : LegacyBackupBase() {
|
|||||||
* @param tracks tracking data from json
|
* @param tracks tracking data from json
|
||||||
*/
|
*/
|
||||||
private suspend fun restoreMangaData(
|
private suspend fun restoreMangaData(
|
||||||
manga: Manga,
|
manga: Manga,
|
||||||
source: Source,
|
source: Source,
|
||||||
chapters: List<Chapter>,
|
chapters: List<Chapter>,
|
||||||
categories: List<String>,
|
categories: List<String>,
|
||||||
history: List<DHistory>,
|
history: List<DHistory>,
|
||||||
tracks: List<Track>
|
tracks: List<Track>
|
||||||
) {
|
) {
|
||||||
fetchManga(source, manga)
|
val fetchedManga = fetchManga(source, manga)
|
||||||
|
|
||||||
// updateChapters(source, fetchedManga, chapters)
|
updateChapters(source, fetchedManga, chapters)
|
||||||
|
|
||||||
|
// TODO
|
||||||
// backupManager.restoreCategoriesForManga(manga, categories)
|
// backupManager.restoreCategoriesForManga(manga, categories)
|
||||||
|
|
||||||
// backupManager.restoreHistoryForManga(history)
|
// backupManager.restoreHistoryForManga(history)
|
||||||
@ -166,6 +173,7 @@ object LegacyBackupImport : LegacyBackupBase() {
|
|||||||
* @return Updated manga.
|
* @return Updated manga.
|
||||||
*/
|
*/
|
||||||
private suspend fun fetchManga(source: Source, manga: Manga): SManga {
|
private suspend fun fetchManga(source: Source, manga: Manga): SManga {
|
||||||
|
// make sure we have the manga record in library
|
||||||
transaction {
|
transaction {
|
||||||
if (MangaTable.select { (MangaTable.url eq manga.url) and (MangaTable.sourceReference eq manga.source) }.firstOrNull() == null) {
|
if (MangaTable.select { (MangaTable.url eq manga.url) and (MangaTable.sourceReference eq manga.source) }.firstOrNull() == null) {
|
||||||
MangaTable.insert {
|
MangaTable.insert {
|
||||||
@ -180,8 +188,8 @@ object LegacyBackupImport : LegacyBackupBase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update manga details
|
||||||
val fetchedManga = source.fetchMangaDetails(manga).awaitSingle()
|
val fetchedManga = source.fetchMangaDetails(manga).awaitSingle()
|
||||||
|
|
||||||
transaction {
|
transaction {
|
||||||
MangaTable.update({ (MangaTable.url eq manga.url) and (MangaTable.sourceReference eq manga.source) }) {
|
MangaTable.update({ (MangaTable.url eq manga.url) and (MangaTable.sourceReference eq manga.source) }) {
|
||||||
|
|
||||||
@ -197,4 +205,8 @@ object LegacyBackupImport : LegacyBackupBase() {
|
|||||||
|
|
||||||
return fetchedManga
|
return fetchedManga
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun updateChapters(source: Source, fetchedManga: SManga, chapters: List<Chapter>) {
|
||||||
|
// TODO("Not yet implemented")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user