Backup Entries not in Library

Co-Authored-By: jobobby04 <jobobby04@gmail.com>
This commit is contained in:
Roshan Varughese
2024-10-15 01:27:39 +13:00
parent a72db41bf1
commit 1a442564df
6 changed files with 41 additions and 6 deletions

View File

@@ -24,6 +24,8 @@ import okio.gzip
import okio.sink
import tachiyomi.core.common.i18n.stringResource
import tachiyomi.core.common.util.system.logcat
import tachiyomi.data.DatabaseHandler
import tachiyomi.data.manga.MangaMapper
import tachiyomi.domain.backup.service.BackupPreferences
import tachiyomi.domain.manga.interactor.GetFavorites
import tachiyomi.domain.manga.model.Manga
@@ -43,6 +45,7 @@ class BackupCreator(
private val parser: ProtoBuf = Injekt.get(),
private val getFavorites: GetFavorites = Injekt.get(),
private val backupPreferences: BackupPreferences = Injekt.get(),
private val handler: DatabaseHandler = Injekt.get(),
private val categoriesBackupCreator: CategoriesBackupCreator = CategoriesBackupCreator(),
private val mangaBackupCreator: MangaBackupCreator = MangaBackupCreator(),
@@ -75,7 +78,16 @@ class BackupCreator(
throw IllegalStateException(context.stringResource(MR.strings.create_backup_file_error))
}
val backupManga = backupMangas(getFavorites.await(), options)
val backupManga = backupMangas(
getFavorites.await() +
if (options.readEntries) {
handler.awaitList { mangasQueries.getReadMangaNotInLibrary(MangaMapper::mapManga) }
} else {
emptyList()
},
options,
)
val backup = Backup(
backupManga = backupManga,
backupCategories = backupCategories(options),

View File

@@ -10,6 +10,7 @@ data class BackupOptions(
val chapters: Boolean = true,
val tracking: Boolean = true,
val history: Boolean = true,
val readEntries: Boolean = true,
val appSettings: Boolean = true,
val extensionRepoSettings: Boolean = true,
val sourceSettings: Boolean = true,
@@ -22,13 +23,14 @@ data class BackupOptions(
chapters,
tracking,
history,
readEntries,
appSettings,
extensionRepoSettings,
sourceSettings,
privateSettings,
)
fun canCreate() = libraryEntries || categories || appSettings || extensionRepoSettings || sourceSettings
fun canCreate() = libraryEntries || categories || readEntries || appSettings || extensionRepoSettings || sourceSettings
companion object {
val libraryOptions = persistentListOf(
@@ -60,6 +62,12 @@ data class BackupOptions(
getter = BackupOptions::categories,
setter = { options, enabled -> options.copy(categories = enabled) },
),
Entry(
label = MR.strings.non_library_settings,
getter = BackupOptions::readEntries,
setter = { options, enabled -> options.copy(readEntries = enabled) },
enabled = { it.libraryEntries },
),
)
val settingsOptions = persistentListOf(
@@ -92,10 +100,11 @@ data class BackupOptions(
chapters = array[2],
tracking = array[3],
history = array[4],
appSettings = array[5],
extensionRepoSettings = array[6],
sourceSettings = array[7],
privateSettings = array[8],
readEntries = array[5],
appSettings = array[6],
extensionRepoSettings = array[7],
sourceSettings = array[8],
privateSettings = array[9],
)
}