Set Flow Variable

This commit is contained in:
HaveAGitGat 2024-05-09 08:17:53 +01:00
parent 1746d61f70
commit 34a3720c15
2 changed files with 95 additions and 1 deletions

View file

@ -0,0 +1,94 @@
import {
IpluginDetails,
IpluginInputArgs,
IpluginOutputArgs,
} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces';
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
const details = (): IpluginDetails => ({
name: 'Set Flow Variable',
description: `Set a Flow Variable to whatever you like. This can be used with the 'Check Flow Variable'
plugin for complex flows with loops in them where you're wanting to keep track
of where you are in the flow. For example, when attempting to transcode with NVENC, then QSV, then CPU.
`,
style: {
borderColor: 'green',
},
tags: '',
isStartPlugin: false,
pType: '',
requiresVersion: '2.11.01',
sidebarPosition: 1,
icon: '',
inputs: [
{
label: 'Variable',
name: 'variable',
type: 'string',
defaultValue: '',
inputUI: {
type: 'text',
},
tooltip: `Variable to set.
\\nExample\\n
transcodeStage
\\n
You can then check this in the 'Check Flow Variable' plugin
{{{args.variables.user.transcodeStage}}}
`,
},
{
label: 'Value',
name: 'value',
type: 'string',
defaultValue: '',
inputUI: {
type: 'text',
},
tooltip: `Value to set.
\\nExample\\n
1
\\nExample\\n
nvenc
`,
},
],
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);
const variable = String(args.inputs.variable).trim();
const value = String(args.inputs.value);
if (!args.variables.user) {
args.variables.user = {};
}
args.jobLog(`Setting variable ${variable} to ${value}`);
args.variables.user[variable] = value;
return {
outputFileObj: args.inputFileObj,
outputNumber: 1,
variables: args.variables,
};
};
export {
details,
plugin,
};

View file

@ -98,7 +98,7 @@ export interface IffmpegCommand {
export interface Ivariables {
ffmpegCommand: IffmpegCommand,
flowFailed: boolean,
inFlow: Record<string, string>,
user: Record<string, string>,
}
export interface IpluginOutputArgs {