forked from DebaucheryLibrarian/traxxx
Added orphaned media flush and batch release flush.
This commit is contained in:
@@ -6,7 +6,8 @@ const inquirer = require('inquirer');
|
||||
const logger = require('./logger')(__filename);
|
||||
const argv = require('./argv');
|
||||
const knex = require('./knex');
|
||||
const { deleteScenes } = require('./releases');
|
||||
const { deleteScenes, deleteMovies } = require('./releases');
|
||||
const { flushOrphanedMedia } = require('./media');
|
||||
|
||||
function curateEntity(entity, includeParameters = false) {
|
||||
if (!entity) {
|
||||
@@ -235,7 +236,16 @@ async function flushEntities(networkSlugs = [], channelSlugs = []) {
|
||||
.leftJoin('releases', 'releases.entity_id', 'selected_entities.id')
|
||||
.pluck('releases.id');
|
||||
|
||||
if (sceneIds.length === 0) {
|
||||
const movieIds = await entityQuery
|
||||
.clone()
|
||||
.select('movies.id')
|
||||
.distinct('movies.id')
|
||||
.whereNotNull('movies.id')
|
||||
.from('selected_entities')
|
||||
.leftJoin('movies', 'movies.entity_id', 'selected_entities.id')
|
||||
.pluck('movies.id');
|
||||
|
||||
if (sceneIds.length === 0 && movieIds.length === 0) {
|
||||
logger.info(`No scenes or movies found to remove for ${entitySlugs}`);
|
||||
return;
|
||||
}
|
||||
@@ -243,16 +253,21 @@ async function flushEntities(networkSlugs = [], channelSlugs = []) {
|
||||
const confirmed = await inquirer.prompt([{
|
||||
type: 'confirm',
|
||||
name: 'flushEntities',
|
||||
message: `You are about to remove ${sceneIds.length} scenes for ${entitySlugs}. Are you sure?`,
|
||||
message: `You are about to remove ${sceneIds.length} scenes and ${movieIds.length} movies for ${entitySlugs}. Are you sure?`,
|
||||
default: false,
|
||||
}]);
|
||||
|
||||
if (!confirmed.flushEntities) {
|
||||
logger.warn(`Confirmation rejected, not flushing scenes for: ${entitySlugs}`);
|
||||
logger.warn(`Confirmation rejected, not flushing scenes or movies for: ${entitySlugs}`);
|
||||
return;
|
||||
}
|
||||
|
||||
await deleteScenes(sceneIds);
|
||||
await Promise.all([
|
||||
deleteScenes(sceneIds),
|
||||
deleteMovies(movieIds),
|
||||
]);
|
||||
|
||||
await flushOrphanedMedia();
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
||||
Reference in New Issue
Block a user