forked from DebaucheryLibrarian/traxxx
Added scene media detach.
This commit is contained in:
29
src/media.js
29
src/media.js
@@ -26,6 +26,7 @@ const http = require('./utils/http');
|
||||
const bulkInsert = require('./utils/bulk-insert');
|
||||
const chunk = require('./utils/chunk');
|
||||
const { get } = require('./utils/qu');
|
||||
const { fetchEntityReleaseIds } = require('./entities');
|
||||
|
||||
// const pipeline = util.promisify(stream.pipeline);
|
||||
const streamQueue = taskQueue();
|
||||
@@ -1159,8 +1160,36 @@ async function flushOrphanedMedia(stage = 1) {
|
||||
}
|
||||
}
|
||||
|
||||
async function detachReleaseMedia(rawSceneIds) {
|
||||
const sceneIds = rawSceneIds.map((sceneId) => Number(sceneId)).filter(Boolean);
|
||||
|
||||
await argv.detachMediaDomains.reduce(async (chain, domain) => {
|
||||
await chain;
|
||||
|
||||
const mediaEntries = await knex(`releases_${domain}`).whereIn('release_id', sceneIds);
|
||||
|
||||
await knex(`releases_${domain}`)
|
||||
.whereIn('release_id', sceneIds)
|
||||
.delete();
|
||||
|
||||
logger.info(`Removed ${mediaEntries.length} ${domain} from ${new Set(mediaEntries.map((mediaEntry) => mediaEntry.release_id)).size} scenes`);
|
||||
}, Promise.resolve());
|
||||
|
||||
if (argv.flushOrphanedMedia !== false) {
|
||||
await flushOrphanedMedia();
|
||||
}
|
||||
}
|
||||
|
||||
async function detachEntityReleaseMedia(networkSlugs = [], channelSlugs = []) {
|
||||
const { sceneIds } = await fetchEntityReleaseIds(networkSlugs, channelSlugs);
|
||||
|
||||
await detachReleaseMedia(sceneIds);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
associateAvatars,
|
||||
associateReleaseMedia,
|
||||
flushOrphanedMedia,
|
||||
detachReleaseMedia,
|
||||
detachEntityReleaseMedia,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user