Added series removal utils.

This commit is contained in:
DebaucheryLibrarian
2022-03-26 17:56:22 +01:00
parent ae9b793318
commit 0dad5b0d68
2 changed files with 58 additions and 7 deletions

View File

@@ -325,6 +325,24 @@ async function deleteMovies(movieIds) {
return deleteCount;
}
async function deleteSeries(serieIds) {
if (serieIds.length === 0) {
return 0;
}
await knex('series_scenes')
.whereIn('serie_id', serieIds)
.delete();
const deleteCount = await knex('series')
.whereIn('id', serieIds)
.delete();
logger.info(`Removed ${deleteCount}/${serieIds.length} series`);
return deleteCount;
}
async function flushScenes() {
const sceneIds = await knex('releases').select('id').pluck('id');
@@ -367,6 +385,27 @@ async function flushMovies() {
logger.info(`Removed ${deleteCount}/${movieIds.length} movies`);
}
async function flushSeries() {
const serieIds = await knex('series').select('id').pluck('id');
const confirmed = await inquirer.prompt([{
type: 'confirm',
name: 'flushSeries',
message: `You are about to remove ${serieIds.length} series. Are you sure?`,
default: false,
}]);
if (!confirmed.flushSeries) {
logger.warn('Confirmation rejected, not flushing series');
return;
}
const deleteCount = await deleteSeries(serieIds);
await flushOrphanedMedia();
logger.info(`Removed ${deleteCount}/${serieIds.length} series`);
}
async function flushBatches(batchIds) {
const [sceneIds, movieIds] = await Promise.all([
knex('releases')
@@ -407,8 +446,10 @@ module.exports = {
fetchScenes,
flushBatches,
flushMovies,
flushSeries,
flushScenes,
searchScenes,
deleteScenes,
deleteMovies,
deleteSeries,
};