Update flows

This commit is contained in:
HaveAGitGat 2023-08-26 17:53:07 +01:00
parent 658857fdf4
commit 25c4fab8d9
73 changed files with 4295 additions and 839 deletions

View file

@ -0,0 +1,68 @@
import { getContainer } from '../../../../FlowHelpers/1.0.0/fileUtils';
import {
IpluginDetails,
IpluginInputArgs,
IpluginOutputArgs,
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = (): IpluginDetails => ({
name: 'Check File Extension',
description: 'Check file extension',
style: {
borderColor: 'orange',
},
tags: 'video',
isStartPlugin: false,
sidebarPosition: -1,
icon: 'faQuestion',
inputs: [
{
name: 'extensions',
type: 'string',
defaultValue: 'mkv,mp4',
inputUI: {
type: 'text',
},
tooltip: 'A comma separated list of extensions to check',
},
],
outputs: [
{
number: 1,
tooltip: 'File is one of extensions',
},
{
number: 2,
tooltip: 'File is not one of extensions',
},
],
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = (args: IpluginInputArgs): 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 extensions = String(args.inputs.extensions);
const extensionArray = extensions.trim().split(',');
const extension = getContainer(args.inputFileObj._id);
let extensionMatch = false;
if (extensionArray.includes(extension)) {
extensionMatch = true;
}
return {
outputFileObj: args.inputFileObj,
outputNumber: extensionMatch ? 1 : 2,
variables: args.variables,
};
};
export {
details,
plugin,
};

View file

@ -0,0 +1,100 @@
import {
IpluginDetails,
IpluginInputArgs,
IpluginOutputArgs,
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = (): IpluginDetails => ({
name: 'Check File Size',
description: 'Check size of working file',
style: {
borderColor: 'orange',
},
tags: 'video',
isStartPlugin: false,
sidebarPosition: -1,
icon: 'faQuestion',
inputs: [
{
name: 'unit',
type: 'string',
defaultValue: 'GB',
inputUI: {
type: 'dropdown',
options: [
'B',
'KB',
'MB',
'GB',
],
},
tooltip: 'Specify the unit to use',
},
{
name: 'greaterThan',
type: 'number',
defaultValue: '0',
inputUI: {
type: 'text',
},
tooltip: 'Specify lower bound',
},
{
name: 'lessThan',
type: 'number',
defaultValue: '10000',
inputUI: {
type: 'text',
},
tooltip: 'Specify upper bound',
},
],
outputs: [
{
number: 1,
tooltip: 'File within range',
},
{
number: 2,
tooltip: 'File not within range',
},
],
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = (args: IpluginInputArgs): 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);
let isWithinRange = false;
let greaterThanBytes = Number(args.inputs.greaterThan);
let lessThanBytes = Number(args.inputs.lessThan);
const fileSizeBytes = args.inputFileObj.file_size * 1000 * 1000;
if (args.inputs.unit === 'KB') {
greaterThanBytes *= 1000;
lessThanBytes *= 1000;
} else if (args.inputs.unit === 'MB') {
greaterThanBytes *= 1000000;
lessThanBytes *= 1000000;
} else if (args.inputs.unit === 'GB') {
greaterThanBytes *= 1000000000;
lessThanBytes *= 1000000000;
}
if (fileSizeBytes >= greaterThanBytes && fileSizeBytes <= lessThanBytes) {
isWithinRange = true;
}
return {
outputFileObj: args.inputFileObj,
outputNumber: isWithinRange ? 1 : 2,
variables: args.variables,
};
};
export {
details,
plugin,
};

View file

@ -0,0 +1,62 @@
import {
IpluginDetails,
IpluginInputArgs,
IpluginOutputArgs,
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = (): IpluginDetails => ({
name: 'Compare File Size',
description: 'Compare file size of working file compared to original file',
style: {
borderColor: 'orange',
},
tags: '',
isStartPlugin: false,
sidebarPosition: -1,
icon: 'faQuestion',
inputs: [],
outputs: [
{
number: 1,
tooltip: 'Working file is smaller than original file',
},
{
number: 2,
tooltip: 'Working file is same size as original file',
},
{
number: 3,
tooltip: 'Working file is larger than original file',
},
],
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = (args: IpluginInputArgs): 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);
let outputNumber = 1;
if (args.inputFileObj.file_size < args.originalLibraryFile.file_size) {
outputNumber = 1;
} else if (args.inputFileObj.file_size === args.originalLibraryFile.file_size) {
outputNumber = 2;
} else if (args.inputFileObj.file_size > args.originalLibraryFile.file_size) {
outputNumber = 3;
}
return {
outputFileObj: args.inputFileObj,
outputNumber,
variables: args.variables,
};
};
export {
details,
plugin,
};

View file

@ -1,3 +1,5 @@
import { promises as fs } from 'fs';
import { getContainer, getFileName } from '../../../../FlowHelpers/1.0.0/fileUtils';
import {
IpluginDetails,
IpluginInputArgs,
@ -5,12 +7,11 @@ import {
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = ():IpluginDetails => ({
const details = (): IpluginDetails => ({
name: 'Copy to Directory',
description: 'Copy the working file to a directory',
style: {
borderColor: 'green',
opacity: 0.5,
},
tags: '',
@ -19,19 +20,26 @@ const details = ():IpluginDetails => ({
icon: 'faArrowRight',
inputs: [
{
name: 'target_codec',
name: 'outputDirectory',
type: 'string',
defaultValue: 'hevc',
defaultValue: '',
inputUI: {
type: 'dropdown',
type: 'text',
},
tooltip: 'Specify ouput directory',
},
{
name: 'makeWorkingFile',
type: 'boolean',
defaultValue: 'false',
inputUI: {
type: 'text',
options: [
'hevc',
// 'vp9',
'h264',
// 'vp8',
'false',
'true',
],
},
tooltip: 'Specify the codec to use',
tooltip: 'Make the copied file the working file',
},
],
outputs: [
@ -43,13 +51,28 @@ const details = ():IpluginDetails => ({
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = (args:IpluginInputArgs):IpluginOutputArgs => {
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 originalFileName = getFileName(args.originalLibraryFile._id);
const newContainer = getContainer(args.inputFileObj._id);
const outputPath = `${args.inputs.outputDirectory}/${originalFileName}.${newContainer}`;
await fs.copyFile(args.inputFileObj._id, outputPath);
let workingFile = args.inputFileObj._id;
if (args.inputs.makeWorkingFile) {
workingFile = outputPath;
}
return {
outputFileObj: args.inputFileObj,
outputFileObj: {
_id: workingFile,
},
outputNumber: 1,
variables: args.variables,
};

View file

@ -10,6 +10,7 @@ const details = ():IpluginDetails => ({
description: 'Move working file to directory.',
style: {
borderColor: 'green',
opacity: 0.5,
},
tags: '',
isStartPlugin: false,

View file

@ -1,3 +1,5 @@
import { promises as fs } from 'fs';
import { getContainer, getFileName } from '../../../../FlowHelpers/1.0.0/fileUtils';
import {
IpluginDetails,
IpluginInputArgs,
@ -10,14 +12,23 @@ const details = ():IpluginDetails => ({
description: 'Move working file to directory.',
style: {
borderColor: 'green',
opacity: 0.5,
},
tags: '',
isStartPlugin: false,
sidebarPosition: -1,
icon: 'faArrowRight',
inputs: [],
inputs: [
{
name: 'outputDirectory',
type: 'string',
defaultValue: '',
inputUI: {
type: 'text',
},
tooltip: 'Specify ouput directory',
},
],
outputs: [
{
number: 1,
@ -27,13 +38,22 @@ const details = ():IpluginDetails => ({
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = (args:IpluginInputArgs):IpluginOutputArgs => {
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 originalFileName = getFileName(args.originalLibraryFile._id);
const newContainer = getContainer(args.inputFileObj._id);
const outputPath = `${args.inputs.outputDirectory}/${originalFileName}.${newContainer}`;
await fs.rename(args.inputFileObj._id, outputPath);
return {
outputFileObj: args.inputFileObj,
outputFileObj: {
_id: outputPath,
},
outputNumber: 1,
variables: args.variables,
};

View file

@ -7,7 +7,7 @@ import {
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = ():IpluginDetails => ({
name: 'Replace Original File',
description: 'Replace the origial file',
description: 'Replace the original file',
style: {
borderColor: 'green',
},
@ -15,23 +15,7 @@ const details = ():IpluginDetails => ({
isStartPlugin: false,
sidebarPosition: -1,
icon: 'faArrowRight',
inputs: [
{
name: 'target_codec',
type: 'string',
defaultValue: 'hevc',
inputUI: {
type: 'dropdown',
options: [
'hevc',
// 'vp9',
'h264',
// 'vp8',
],
},
tooltip: 'Specify the codec to use',
},
],
inputs: [],
outputs: [
{
number: 1,

View file

@ -0,0 +1,44 @@
import {
IpluginDetails,
IpluginInputArgs,
IpluginOutputArgs,
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = ():IpluginDetails => ({
name: 'Set Original File',
description: 'Set the working file to the original file',
style: {
borderColor: 'green',
},
tags: '',
isStartPlugin: false,
sidebarPosition: -1,
icon: '',
inputs: [],
outputs: [
{
number: 1,
tooltip: 'Continue to next plugin',
},
],
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = (args:IpluginInputArgs):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);
return {
outputFileObj: {
_id: args.originalLibraryFile._id,
},
outputNumber: 1,
variables: args.variables,
};
};
export {
details,
plugin,
};

View file

@ -0,0 +1,43 @@
import {
IpluginDetails,
IpluginInputArgs,
IpluginOutputArgs,
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = ():IpluginDetails => ({
name: 'Unpack File',
description: 'Unpack a file',
style: {
borderColor: 'green',
opacity: 0.5,
},
tags: '',
isStartPlugin: false,
sidebarPosition: -1,
icon: 'faArrowRight',
inputs: [],
outputs: [
{
number: 1,
tooltip: 'Continue to next plugin',
},
],
});
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const plugin = (args:IpluginInputArgs):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);
return {
outputFileObj: args.inputFileObj,
outputNumber: 1,
variables: args.variables,
};
};
export {
details,
plugin,
};