mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Start storing extension ID/source name mapping in backup files
This commit is contained in:
		@@ -24,6 +24,7 @@ import eu.kanade.tachiyomi.data.backup.models.Backup
 | 
			
		||||
import eu.kanade.tachiyomi.data.backup.models.Backup.CATEGORIES
 | 
			
		||||
import eu.kanade.tachiyomi.data.backup.models.Backup.CHAPTERS
 | 
			
		||||
import eu.kanade.tachiyomi.data.backup.models.Backup.CURRENT_VERSION
 | 
			
		||||
import eu.kanade.tachiyomi.data.backup.models.Backup.EXTENSIONS
 | 
			
		||||
import eu.kanade.tachiyomi.data.backup.models.Backup.HISTORY
 | 
			
		||||
import eu.kanade.tachiyomi.data.backup.models.Backup.MANGA
 | 
			
		||||
import eu.kanade.tachiyomi.data.backup.models.Backup.TRACK
 | 
			
		||||
@@ -110,24 +111,38 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
 | 
			
		||||
        // Create category array
 | 
			
		||||
        val categoryEntries = JsonArray()
 | 
			
		||||
 | 
			
		||||
        // Create extension ID/name mapping
 | 
			
		||||
        val extensionEntries = JsonArray()
 | 
			
		||||
 | 
			
		||||
        // Add value's to root
 | 
			
		||||
        root[Backup.VERSION] = CURRENT_VERSION
 | 
			
		||||
        root[Backup.MANGAS] = mangaEntries
 | 
			
		||||
        root[CATEGORIES] = categoryEntries
 | 
			
		||||
        root[EXTENSIONS] = extensionEntries
 | 
			
		||||
 | 
			
		||||
        databaseHelper.inTransaction {
 | 
			
		||||
            // Get manga from database
 | 
			
		||||
            val mangas = getFavoriteManga()
 | 
			
		||||
 | 
			
		||||
            val extensions: MutableSet<String> = mutableSetOf()
 | 
			
		||||
 | 
			
		||||
            // Backup library manga and its dependencies
 | 
			
		||||
            mangas.forEach { manga ->
 | 
			
		||||
                mangaEntries.add(backupMangaObject(manga, flags))
 | 
			
		||||
 | 
			
		||||
                // Maintain set of extensions/sources used (excludes local source)
 | 
			
		||||
                if (manga.source != 0L) {
 | 
			
		||||
                    extensions.add("${manga.source}:${sourceManager.get(manga.source)!!.name}")
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Backup categories
 | 
			
		||||
            if ((flags and BACKUP_CATEGORY_MASK) == BACKUP_CATEGORY) {
 | 
			
		||||
                backupCategories(categoryEntries)
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // Backup extension ID/name mapping
 | 
			
		||||
            backupExtensionInfo(extensionEntries, extensions)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
@@ -170,6 +185,12 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun backupExtensionInfo(root: JsonArray, extensions: Set<String>) {
 | 
			
		||||
        extensions.sorted().forEach {
 | 
			
		||||
            root.add(it)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Backup the categories of library
 | 
			
		||||
     *
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@ object Backup {
 | 
			
		||||
    const val TRACK = "track"
 | 
			
		||||
    const val CHAPTERS = "chapters"
 | 
			
		||||
    const val CATEGORIES = "categories"
 | 
			
		||||
    const val EXTENSIONS = "extensions"
 | 
			
		||||
    const val HISTORY = "history"
 | 
			
		||||
    const val VERSION = "version"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user