refactor: Update usage of delegated sources' ids

This commit is contained in:
Cuong-Tran 2024-07-04 16:58:54 +07:00 committed by Tran M. Cuong
parent 7c63f84f5f
commit 9ffeb13ef3
7 changed files with 33 additions and 16 deletions

View file

@ -68,6 +68,9 @@ class MangaRestorer(
)
}
/**
* Restore a single manga
*/
suspend fun restoreManga(
backupManga: BackupManga,
backupCategories: List<BackupCategory>,

View file

@ -21,6 +21,7 @@ import exh.metadata.metadata.NHentaiSearchMetadata
import exh.metadata.metadata.RaisedSearchMetadata
import exh.metadata.metadata.base.RaisedTag
import exh.source.DelegatedHttpSource
import exh.source.NHENTAI_SOURCE_ID
import exh.util.trimOrNull
import exh.util.urlImportFetchSearchManga
import exh.util.urlImportFetchSearchMangaSuspend
@ -214,7 +215,7 @@ class NHentai(delegate: HttpSource, val context: Context) :
}
companion object {
const val otherId = 7309872737163460316L
const val otherId = NHENTAI_SOURCE_ID
private val jsonParser = Json {
ignoreUnknownKeys = true

View file

@ -1,9 +1,12 @@
package exh
import eu.kanade.tachiyomi.source.online.all.NHentai
import exh.source.BlacklistedSources
import exh.source.EH_SOURCE_ID
import exh.source.HBROWSE_OLD_ID
import exh.source.HBROWSE_SOURCE_ID
import exh.source.NHENTAI_OLD_ID
import exh.source.NHENTAI_SOURCE_ID
import exh.source.TSUMINO_OLD_ID
import exh.source.TSUMINO_SOURCE_ID
import tachiyomi.domain.manga.model.Manga
import java.net.URI
@ -11,25 +14,28 @@ import java.net.URISyntaxException
object EXHMigrations {
/**
* Migrate old source ID of delegated sources in old backup
*/
fun migrateBackupEntry(manga: Manga): Manga {
var newManga = manga
if (newManga.source == 6907L) {
if (newManga.source == NHENTAI_OLD_ID) {
newManga = newManga.copy(
// Migrate the old source to the delegated one
source = NHentai.otherId,
source = NHENTAI_SOURCE_ID,
// Migrate nhentai URLs
url = getUrlWithoutDomain(newManga.url),
)
}
// Migrate Tsumino source IDs
if (newManga.source == 6909L) {
if (newManga.source == TSUMINO_OLD_ID) {
newManga = newManga.copy(
source = TSUMINO_SOURCE_ID,
)
}
if (newManga.source == 6912L) {
if (newManga.source == HBROWSE_OLD_ID) {
newManga = newManga.copy(
source = HBROWSE_SOURCE_ID,
url = newManga.url + "/c00001/",

View file

@ -8,13 +8,13 @@ import eu.kanade.tachiyomi.data.backup.models.Backup
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.sync.SyncDataJob
import eu.kanade.tachiyomi.source.AndroidSourceManager
import eu.kanade.tachiyomi.source.online.all.NHentai
import eu.kanade.tachiyomi.util.system.workManager
import exh.eh.EHentaiThrottleManager
import exh.eh.EHentaiUpdateWorker
import exh.metadata.metadata.EHentaiSearchMetadata
import exh.source.EH_SOURCE_ID
import exh.source.EXH_SOURCE_ID
import exh.source.NHENTAI_SOURCE_ID
import exh.source.nHentaiSourceIds
import exh.util.jobScheduler
import kotlinx.coroutines.runBlocking
@ -299,9 +299,9 @@ object DebugFunctions {
}
fun migrateLangNhentaiToMultiLangSource() {
val sources = nHentaiSourceIds - NHentai.otherId
val sources = nHentaiSourceIds - NHENTAI_SOURCE_ID
runBlocking { handler.await { ehQueries.migrateAllNhentaiToOtherLang(NHentai.otherId, sources) } }
runBlocking { handler.await { ehQueries.migrateAllNhentaiToOtherLang(NHENTAI_SOURCE_ID, sources) } }
}
fun exportProtobufScheme() = ProtoBufSchemaGenerator.generateSchemaText(Backup.serializer().descriptor)

View file

@ -1,6 +1,7 @@
package mihon.core.migration.migrations
import eu.kanade.domain.manga.interactor.UpdateManga
import exh.source.HBROWSE_OLD_ID
import exh.source.HBROWSE_SOURCE_ID
import mihon.core.migration.MigrateUtils
import mihon.core.migration.Migration
@ -15,7 +16,7 @@ class DelegateHBrowseMigration : Migration {
override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext {
val getMangaBySource = migrationContext.get<GetMangaBySource>() ?: return@withIOContext false
val updateManga = migrationContext.get<UpdateManga>() ?: return@withIOContext false
MigrateUtils.updateSourceId(migrationContext, HBROWSE_SOURCE_ID, 6912)
MigrateUtils.updateSourceId(migrationContext, HBROWSE_SOURCE_ID, HBROWSE_OLD_ID)
// Migrate BHrowse URLs
val hBrowseManga = getMangaBySource.await(HBROWSE_SOURCE_ID)

View file

@ -1,6 +1,7 @@
package mihon.core.migration.migrations
import eu.kanade.tachiyomi.source.online.all.NHentai
import exh.source.NHENTAI_OLD_ID
import exh.source.NHENTAI_SOURCE_ID
import mihon.core.migration.MigrateUtils
import mihon.core.migration.Migration
import mihon.core.migration.MigrationContext
@ -10,7 +11,7 @@ class DelegateNHentaiMigration : Migration {
override val version: Float = 6f
override suspend fun invoke(migrationContext: MigrationContext): Boolean = withIOContext {
MigrateUtils.updateSourceId(migrationContext, NHentai.otherId, 6907)
MigrateUtils.updateSourceId(migrationContext, NHENTAI_SOURCE_ID, NHENTAI_OLD_ID)
return@withIOContext true
}

View file

@ -4,8 +4,13 @@ package exh.source
const val LEWD_SOURCE_SERIES = 6900L
const val EH_SOURCE_ID = LEWD_SOURCE_SERIES + 1
const val EXH_SOURCE_ID = LEWD_SOURCE_SERIES + 2
const val PURURIN_SOURCE_ID = 2221515250486218861
const val TSUMINO_SOURCE_ID = 6707338697138388238
const val EIGHTMUSES_SOURCE_ID = 1802675169972965535
const val HBROWSE_SOURCE_ID = 1401584337232758222
const val NHENTAI_SOURCE_ID = 7309872737163460316L
const val PURURIN_SOURCE_ID = 2221515250486218861L
const val TSUMINO_SOURCE_ID = 6707338697138388238L
const val EIGHTMUSES_SOURCE_ID = 1802675169972965535L
const val HBROWSE_SOURCE_ID = 1401584337232758222L
const val MERGED_SOURCE_ID = LEWD_SOURCE_SERIES + 69
const val NHENTAI_OLD_ID = 6907L
const val TSUMINO_OLD_ID = 6909L
const val HBROWSE_OLD_ID = 6912L