Optionally remove migrated manga from categories

In case the setting is enabled, the manga should be removed from all categories on migration
This commit is contained in:
schroda
2024-06-26 14:04:42 +02:00
parent 6224ad4596
commit c337ec09ea

View File

@@ -440,19 +440,21 @@ export class Mangas {
}: Omit<MigrateOptions, 'mangaIdToMigrateTo'>, }: Omit<MigrateOptions, 'mangaIdToMigrateTo'>,
): Promise<void> { ): Promise<void> {
return Mangas.executeAction('migrate', 1, async () => { return Mangas.executeAction('migrate', 1, async () => {
const [{ data: mangaToMigrateData }, { data: mangaToMigrateToData }] = await Promise.all([ const [{ data: mangaToMigrateData }, { data: mangaToMigrateToData }, { removeMangaFromCategories }] =
requestManager.getMangaToMigrate(mangaId, { await Promise.all([
migrateChapters, requestManager.getMangaToMigrate(mangaId, {
migrateCategories, migrateChapters,
migrateTracking, migrateCategories,
deleteChapters, migrateTracking,
}).response, deleteChapters,
requestManager.getMangaToMigrateToFetch(mangaIdToMigrateTo, { }).response,
migrateChapters, requestManager.getMangaToMigrateToFetch(mangaIdToMigrateTo, {
migrateCategories, migrateChapters,
migrateTracking, migrateCategories,
}).response, migrateTracking,
]); }).response,
getMetadataServerSettings(),
]);
if (!mangaToMigrateData.manga || !mangaToMigrateToData?.fetchManga?.manga) { if (!mangaToMigrateData.manga || !mangaToMigrateToData?.fetchManga?.manga) {
throw new Error('Mangas::migrate: missing manga data'); throw new Error('Mangas::migrate: missing manga data');
@@ -482,7 +484,10 @@ export class Mangas {
? requestManager.updateManga(mangaIdToMigrateTo, { updateManga: { inLibrary: true } }).response ? requestManager.updateManga(mangaIdToMigrateTo, { updateManga: { inLibrary: true } }).response
: undefined, : undefined,
mode === 'migrate' mode === 'migrate'
? requestManager.updateManga(mangaId, { updateManga: { inLibrary: false } }).response ? requestManager.updateManga(mangaId, {
updateManga: { inLibrary: false },
updateMangaCategories: removeMangaFromCategories ? { clearCategories: true } : undefined,
}).response
: undefined, : undefined,
]); ]);
}); });