Added orphaned media flush and batch release flush.
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
'use strict';
|
||||
|
||||
const inquirer = require('inquirer');
|
||||
|
||||
const logger = require('./logger')(__filename);
|
||||
const knex = require('./knex');
|
||||
const { flushOrphanedMedia } = require('./media');
|
||||
|
||||
function curateRelease(release, withMedia = false) {
|
||||
if (!release) {
|
||||
@@ -125,14 +129,52 @@ async function deleteScenes(sceneIds) {
|
||||
await knex('releases')
|
||||
.whereIn('id', sceneIds)
|
||||
.delete();
|
||||
}
|
||||
|
||||
// TODO: wipe media without associations, clean disk
|
||||
async function deleteMovies(movieIds) {
|
||||
await knex('movies')
|
||||
.whereIn('id', movieIds)
|
||||
.delete();
|
||||
}
|
||||
|
||||
async function flushBatches(batchIds) {
|
||||
const [sceneIds, movieIds] = await Promise.all([
|
||||
knex('releases')
|
||||
.select('releases.id')
|
||||
.whereIn('created_batch_id', batchIds)
|
||||
.pluck('releases.id'),
|
||||
knex('movies').whereIn('created_batch_id', batchIds)
|
||||
.select('movies.id')
|
||||
.whereIn('created_batch_id', batchIds)
|
||||
.pluck('movies.id'),
|
||||
]);
|
||||
|
||||
const confirmed = await inquirer.prompt([{
|
||||
type: 'confirm',
|
||||
name: 'flushBatches',
|
||||
message: `You are about to remove ${sceneIds.length} scenes and ${movieIds.length} movies from batches ${batchIds}. Are you sure?`,
|
||||
default: false,
|
||||
}]);
|
||||
|
||||
if (!confirmed.flushBatches) {
|
||||
logger.warn(`Confirmation rejected, not flushing scenes or movies for batches ${batchIds}`);
|
||||
return;
|
||||
}
|
||||
|
||||
await Promise.all([
|
||||
deleteScenes(sceneIds),
|
||||
deleteMovies(movieIds),
|
||||
]);
|
||||
|
||||
await flushOrphanedMedia();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
curateRelease,
|
||||
fetchRelease,
|
||||
fetchReleases,
|
||||
flushBatches,
|
||||
searchReleases,
|
||||
deleteScenes,
|
||||
deleteMovies,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user