Merge pull request #550 from HaveAGitGat/delete_file

Add Delete File
This commit is contained in:
HaveAGitGat 2023-11-17 08:32:47 +00:00 committed by GitHub
commit 0fbfb7cc8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 271 additions and 6 deletions

View file

@ -0,0 +1,108 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.plugin = exports.details = void 0;
var fs_1 = require("fs");
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
var details = function () { return ({
name: 'Delete File',
description: 'Delete the working file or original file.',
style: {
borderColor: 'red',
},
tags: 'video',
isStartPlugin: false,
pType: '',
requiresVersion: '2.11.01',
sidebarPosition: -1,
icon: 'faTrash',
inputs: [
{
name: 'fileToDelete',
type: 'string',
defaultValue: 'workingFile',
inputUI: {
type: 'dropdown',
options: [
'workingFile',
'originalFile',
],
},
tooltip: 'Specify the file to delete',
},
],
outputs: [
{
number: 1,
tooltip: 'Continue to next plugin',
},
],
}); };
exports.details = details;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () {
var lib, fileToDelete;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
lib = require('../../../../../methods/lib')();
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
args.inputs = lib.loadDefaultValues(args.inputs, details);
fileToDelete = String(args.inputs.fileToDelete);
if (!(fileToDelete === 'workingFile')) return [3 /*break*/, 2];
args.jobLog("Deleting working file ".concat(args.inputFileObj._id));
return [4 /*yield*/, fs_1.promises.unlink(args.inputFileObj._id)];
case 1:
_a.sent();
return [3 /*break*/, 4];
case 2:
if (!(fileToDelete === 'originalFile')) return [3 /*break*/, 4];
args.jobLog("Deleting original file ".concat(args.originalLibraryFile._id));
return [4 /*yield*/, fs_1.promises.unlink(args.originalLibraryFile._id)];
case 3:
_a.sent();
_a.label = 4;
case 4: return [2 /*return*/, {
outputFileObj: args.inputFileObj,
outputNumber: 1,
variables: args.variables,
}];
}
});
}); };
exports.plugin = plugin;

View file

@ -26,8 +26,8 @@ var details = function () { return ({
version: '1.0.0',
id: 'jiZxqk6Mn',
position: {
x: 718.6406249999999,
y: 385.25,
x: 596.6254413959128,
y: 400.40716566510395,
},
},
{
@ -38,7 +38,43 @@ var details = function () { return ({
id: '1Ic5EqipX',
position: {
x: 718.640625,
y: 255.75,
y: 256.50785828325525,
},
},
{
name: 'Delete Original File',
sourceRepo: 'Community',
pluginName: 'deleteFile',
version: '1.0.0',
id: 'GFVi2TyC5',
position: {
x: 1023.512757091562,
y: 507.4711636025485,
},
inputsDB: {
fileToDelete: 'originalFile',
},
},
{
name: 'Move To Directory',
sourceRepo: 'Community',
pluginName: 'moveToDirectory',
version: '2.0.0',
id: 'paWDXnDMV',
position: {
x: 831.7746114279963,
y: 397.5817125305445,
},
},
{
name: "By default this flow will replace the original file. If you'd like to move the\n file to an output directory and delete the original file then connect the 'Basic Video or Audio\n Settings' plugin to the 'Move To Directory'",
sourceRepo: 'Community',
pluginName: 'comment',
version: '1.0.0',
id: 'CuLcKZmvH',
position: {
x: 934.0854796674475,
y: 187.65496806885437,
},
},
],
@ -57,6 +93,13 @@ var details = function () { return ({
targetHandle: null,
id: 'CNPsr76ct',
},
{
source: 'paWDXnDMV',
sourceHandle: '1',
target: 'GFVi2TyC5',
targetHandle: null,
id: 'f2s4CS2H5',
},
],
}); };
exports.details = details;

View file

@ -0,0 +1,69 @@
import { promises as fs } from 'fs';
import {
IpluginDetails,
IpluginInputArgs,
IpluginOutputArgs,
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = (): IpluginDetails => ({
name: 'Delete File',
description: 'Delete the working file or original file.',
style: {
borderColor: 'red',
},
tags: 'video',
isStartPlugin: false,
pType: '',
requiresVersion: '2.11.01',
sidebarPosition: -1,
icon: 'faTrash',
inputs: [
{
name: 'fileToDelete',
type: 'string',
defaultValue: 'workingFile',
inputUI: {
type: 'dropdown',
options: [
'workingFile',
'originalFile',
],
},
tooltip: 'Specify the file to delete',
},
],
outputs: [
{
number: 1,
tooltip: 'Continue to next plugin',
},
],
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = async (args: IpluginInputArgs): Promise<IpluginOutputArgs> => {
const lib = require('../../../../../methods/lib')();
// eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign
args.inputs = lib.loadDefaultValues(args.inputs, details);
const fileToDelete = String(args.inputs.fileToDelete);
if (fileToDelete === 'workingFile') {
args.jobLog(`Deleting working file ${args.inputFileObj._id}`);
await fs.unlink(args.inputFileObj._id);
} else if (fileToDelete === 'originalFile') {
args.jobLog(`Deleting original file ${args.originalLibraryFile._id}`);
await fs.unlink(args.originalLibraryFile._id);
}
return {
outputFileObj: args.inputFileObj,
outputNumber: 1,
variables: args.variables,
};
};
export {
details,
plugin,
};

View file

@ -27,8 +27,8 @@ const details = () :IflowTemplate => ({
version: '1.0.0',
id: 'jiZxqk6Mn',
position: {
x: 718.6406249999999,
y: 385.25,
x: 596.6254413959128,
y: 400.40716566510395,
},
},
{
@ -39,7 +39,45 @@ const details = () :IflowTemplate => ({
id: '1Ic5EqipX',
position: {
x: 718.640625,
y: 255.75,
y: 256.50785828325525,
},
},
{
name: 'Delete Original File',
sourceRepo: 'Community',
pluginName: 'deleteFile',
version: '1.0.0',
id: 'GFVi2TyC5',
position: {
x: 1023.512757091562,
y: 507.4711636025485,
},
inputsDB: {
fileToDelete: 'originalFile',
},
},
{
name: 'Move To Directory',
sourceRepo: 'Community',
pluginName: 'moveToDirectory',
version: '2.0.0',
id: 'paWDXnDMV',
position: {
x: 831.7746114279963,
y: 397.5817125305445,
},
},
{
name: `By default this flow will replace the original file. If you'd like to move the
file to an output directory and delete the original file then connect the 'Basic Video or Audio
Settings' plugin to the 'Move To Directory'`,
sourceRepo: 'Community',
pluginName: 'comment',
version: '1.0.0',
id: 'CuLcKZmvH',
position: {
x: 934.0854796674475,
y: 187.65496806885437,
},
},
],
@ -58,6 +96,13 @@ const details = () :IflowTemplate => ({
targetHandle: null,
id: 'CNPsr76ct',
},
{
source: 'paWDXnDMV',
sourceHandle: '1',
target: 'GFVi2TyC5',
targetHandle: null,
id: 'f2s4CS2H5',
},
],
});