From 2283c7d5a86b3511e4d0b26862646ca972ff3132 Mon Sep 17 00:00:00 2001 From: Ahmad Ansori Palembani Date: Wed, 29 May 2024 12:38:13 +0700 Subject: [PATCH] fix: BackupManga should also use ComicInfo --- .../tachiyomi/data/backup/BackupRestorer.kt | 6 ++-- .../data/backup/models/BackupManga.kt | 34 ++++++++++++++----- .../data/library/CustomMangaManager.kt | 18 +++++----- 3 files changed, 38 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt index e9f6e506ee..3579d86a26 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt @@ -198,7 +198,7 @@ class BackupRestorer(val context: Context, val notifier: BackupNotifier) { tracks: List, backupCategories: List, filteredScanlators: List, - customManga: CustomMangaManager.MangaJson?, + customManga: CustomMangaManager.ComicList.ComicInfoYokai?, ) { val fetchedManga = manga.also { it.initialized = it.description != null @@ -218,7 +218,7 @@ class BackupRestorer(val context: Context, val notifier: BackupNotifier) { tracks: List, backupCategories: List, filteredScanlators: List, - customManga: CustomMangaManager.MangaJson?, + customManga: CustomMangaManager.ComicList.ComicInfoYokai?, ) { restoreChapters(backupManga, chapters) restoreExtras(backupManga, categories, history, tracks, backupCategories, filteredScanlators, customManga) @@ -258,7 +258,7 @@ class BackupRestorer(val context: Context, val notifier: BackupNotifier) { tracks: List, backupCategories: List, filteredScanlators: List, - customManga: CustomMangaManager.MangaJson?, + customManga: CustomMangaManager.ComicList.ComicInfoYokai?, ) { restoreCategories(manga, categories, backupCategories) restoreHistoryForManga(history) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt index 1fb2bd8ea9..52e8c397fd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt @@ -1,5 +1,7 @@ package eu.kanade.tachiyomi.data.backup.models +import dev.yokai.core.metadata.ComicInfo +import dev.yokai.core.metadata.ComicInfoPublishingStatus import eu.kanade.tachiyomi.data.database.models.ChapterImpl import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.MangaImpl @@ -83,7 +85,7 @@ data class BackupManga( } } - fun getCustomMangaInfo(): CustomMangaManager.MangaJson? { + fun getCustomMangaInfo(): CustomMangaManager.ComicList.ComicInfoYokai? { if (customTitle != null || customArtist != null || customAuthor != null || @@ -91,14 +93,30 @@ data class BackupManga( customGenre != null || customStatus != 0 ) { - return CustomMangaManager.MangaJson( + return CustomMangaManager.ComicList.ComicInfoYokai( id = 0L, - title = customTitle, - author = customAuthor, - artist = customArtist, - description = customDescription, - genre = customGenre?.toTypedArray(), - status = customStatus.takeUnless { it == 0 }, + value = ComicInfo( + title = null, + series = customTitle?.let { ComicInfo.Series(it) }, + number = null, + writer = customAuthor?.let { ComicInfo.Writer(it) }, + penciller = customArtist?.let { ComicInfo.Penciller(it) }, + inker = null, + colorist = null, + letterer = null, + coverArtist = null, + translator = null, + summary = customDescription?.let { ComicInfo.Summary(it) }, + genre = customGenre?.joinToString(", ")?.let { ComicInfo.Genre(it) }, + tags = null, + web = null, + publishingStatus = customStatus.takeUnless { it == 0 }?.let { ComicInfo.PublishingStatusTachiyomi( + ComicInfoPublishingStatus.toComicInfoValue(status.toLong()) + ) }, + categories = null, + source = null, + language = null, + ) ) } return null diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt index 906096a0a6..16920f3d16 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/CustomMangaManager.kt @@ -102,18 +102,18 @@ class CustomMangaManager(val context: Context) { saveCustomInfo { jsonFile.delete() } } - fun saveMangaInfo(manga: MangaJson) { + fun saveMangaInfo(manga: ComicList.ComicInfoYokai) { val mangaId = manga.id ?: return - if (manga.title == null && - manga.author == null && - manga.artist == null && - manga.description == null && - manga.genre == null && - (manga.status ?: -1) == -1 + if (manga.value.series == null && + manga.value.writer == null && + manga.value.penciller == null && + manga.value.summary == null && + manga.value.genre == null && + (manga.value.publishingStatus?.value ?: "Invalid") == "Invalid" ) { customMangaMap.remove(mangaId) } else { - customMangaMap[mangaId] = manga.toManga() + customMangaMap[mangaId] = mangaFromComicInfoObject(mangaId, manga.value) } saveCustomInfo() } @@ -176,7 +176,7 @@ class CustomMangaManager(val context: Context) { @XmlSerialName("ComicInfoYokai", "http://www.w3.org/2001/XMLSchema", "yk") data class ComicInfoYokai( @XmlValue(true) val value: ComicInfo, - val id: Long? = null, + var id: Long? = null, ) }