Migrate things to use newer data models (#9239)

* Remove old database models from Coil

* Remove old database models from TrackInfoDialogHome

* Remove old database models from Backup Manager

(cherry picked from commit dfdb688b437c38954b1072b7a1df15921a437868)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/models/MangaImpl.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/model/SMangaExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
This commit is contained in:
Andreas
2023-03-19 18:11:58 +01:00
committed by Jobobby04
parent 95f770b39e
commit 0f3bb9f7d7
20 changed files with 276 additions and 482 deletions
+27 -17
View File
@@ -13,7 +13,6 @@ import eu.kanade.domain.ui.UiPreferences
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.core.security.SecurityPreferences
import eu.kanade.tachiyomi.data.backup.BackupCreatorJob
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.preference.PreferenceValues
import eu.kanade.tachiyomi.data.track.TrackManager
@@ -59,6 +58,7 @@ import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_C
import tachiyomi.domain.manga.interactor.GetManga
import tachiyomi.domain.manga.interactor.GetMangaBySource
import tachiyomi.domain.manga.interactor.InsertMergedReference
import tachiyomi.domain.manga.model.Manga
import tachiyomi.domain.manga.model.MangaUpdate
import tachiyomi.domain.manga.model.MergedMangaReference
import tachiyomi.domain.manga.model.TriStateFilter
@@ -73,7 +73,6 @@ import uy.kohesive.injekt.injectLazy
import java.io.File
import java.net.URI
import java.net.URISyntaxException
import tachiyomi.domain.manga.model.Manga as DomainManga
object EXHMigrations {
private val handler: DatabaseHandler by injectLazy()
@@ -558,28 +557,39 @@ object EXHMigrations {
return false
}
fun migrateBackupEntry(manga: Manga) {
if (manga.source == 6907L) {
// Migrate the old source to the delegated one
manga.source = NHentai.otherId
// Migrate nhentai URLs
manga.url = getUrlWithoutDomain(manga.url)
fun migrateBackupEntry(manga: Manga): Manga {
var newManga = manga
if (newManga.source == 6907L) {
newManga = newManga.copy(
// Migrate the old source to the delegated one
source = NHentai.otherId,
// Migrate nhentai URLs
url = getUrlWithoutDomain(newManga.url),
)
}
// Migrate Tsumino source IDs
if (manga.source == 6909L) {
manga.source = TSUMINO_SOURCE_ID
if (newManga.source == 6909L) {
newManga = newManga.copy(
source = TSUMINO_SOURCE_ID,
)
}
if (manga.source == 6912L) {
manga.source = HBROWSE_SOURCE_ID
manga.url = manga.url + "/c00001/"
if (newManga.source == 6912L) {
newManga = newManga.copy(
source = HBROWSE_SOURCE_ID,
url = newManga.url + "/c00001/",
)
}
// Allow importing of EHentai extension backups
if (manga.source in BlacklistedSources.EHENTAI_EXT_SOURCES) {
manga.source = EH_SOURCE_ID
if (newManga.source in BlacklistedSources.EHENTAI_EXT_SOURCES) {
newManga = newManga.copy(
source = EH_SOURCE_ID,
)
}
return newManga
}
private fun getUrlWithoutDomain(orig: String): String {
@@ -624,7 +634,7 @@ object EXHMigrations {
}
}
private fun readMangaConfig(manga: DomainManga): MangaConfig? {
private fun readMangaConfig(manga: Manga): MangaConfig? {
return MangaConfig.readFromUrl(manga.url)
}
@@ -650,7 +660,7 @@ object EXHMigrations {
}
}
private data class LoadedMangaSource(val source: Source, val manga: DomainManga)
private data class LoadedMangaSource(val source: Source, val manga: Manga)
private fun updateSourceId(newId: Long, oldId: Long) {
runBlocking {
@@ -17,7 +17,7 @@ class MangaDexFollowsScreenModel(sourceId: Long) : BrowseSourceScreenModel(sourc
return MangaDexFollowsPagingSource(source.getMainSource() as MangaDex)
}
override fun Flow<Manga>.combineMetadata(dbManga: Manga, metadata: RaisedSearchMetadata?): Flow<Pair<Manga, RaisedSearchMetadata?>> {
override fun Flow<Manga>.combineMetadata(metadata: RaisedSearchMetadata?): Flow<Pair<Manga, RaisedSearchMetadata?>> {
return map { it to metadata }
}
@@ -27,7 +27,7 @@ class MangaDexSimilarScreenModel(
return MangaDexSimilarPagingSource(manga, source.getMainSource() as MangaDex)
}
override fun Flow<Manga>.combineMetadata(dbManga: Manga, metadata: RaisedSearchMetadata?): Flow<Pair<Manga, RaisedSearchMetadata?>> {
override fun Flow<Manga>.combineMetadata(metadata: RaisedSearchMetadata?): Flow<Pair<Manga, RaisedSearchMetadata?>> {
return map { it to metadata }
}