From e2cb06f0f2ee5663e8c51debeeb3526550c4288f Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sun, 3 Sep 2023 18:39:33 +0100 Subject: [PATCH] Beta plugins --- .../audio/normalizeAudio/1.0.0/index.js | 2 + .../runClassicFilterPlugin/1.0.0/index.js | 2 + .../runClassicTranscodePlugin/1.0.0/index.js | 2 + .../ffmpegCommand10BitVideo/1.0.0/index.js | 2 + .../ffmpegCommandCropBlackBars/1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../ffmpegCommandExecute/1.0.0/index.js | 2 + .../ffmpegCommandHdrToSdr/1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../ffmpegCommandRorderStreams/1.0.0/index.js | 2 + .../ffmpegCommandSetContainer/1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../1.0.0/index.js | 2 + .../ffmpegCommandStart/1.0.0/index.js | 2 + .../file/checkFileExists/1.0.0/index.js | 2 + .../file/checkFileExtension/1.0.0/index.js | 2 + .../file/checkFileMedium/1.0.0/index.js | 2 + .../file/checkFileNameIncludes/1.0.0/index.js | 2 + .../file/checkFileSize/1.0.0/index.js | 2 + .../file/compareFileSize/1.0.0/index.js | 2 + .../file/copyToDirectory/1.0.0/index.js | 12 + .../file/copyToWorkDirectory/1.0.0/index.js | 12 + .../file/moveToDirectory/1.0.0/index.js | 2 + .../file/moveToDirectory/2.0.0/index.js | 12 + .../moveToOriginalDirectory/1.0.0/index.js | 12 + .../file/renameFile/1.0.0/index.js | 12 + .../file/replaceOriginalFile/1.0.0/index.js | 4 +- .../file/setOriginalFile/1.0.0/index.js | 2 + .../file/unpack/1.0.0/index.js | 2 + .../handbrakeCustomArguments/1.0.0/index.js | 2 + .../input/inputFile/1.0.0/index.js | 2 + .../tools/comment/1.0.0/index.js | 45 +++ .../tools/failFlow/1.0.0/index.js | 2 + .../tools/goToFlow/1.0.0/index.js | 18 +- .../tools/onFlowError/1.0.0/index.js | 37 ++ .../tools/requireReview/1.0.0/index.js | 37 ++ .../tools/runMkvPropEdit/1.0.0/index.js | 2 + .../tools/webRequest/1.0.0/index.js | 139 +++++++- .../video/check10Bit/1.0.0/index.js | 2 + .../video/checkHdr/1.0.0/index.js | 4 +- .../video/checkVideoBitrate/1.0.0/index.js | 2 + .../video/checkVideoCodec/1.0.0/index.js | 2 + .../video/checkVideoResolution/1.0.0/index.js | 2 + .../video/transcodeVideo/1.0.0/index.js | 2 + .../tutorials/chapter1.js | 109 ++++++ .../tutorials/chapter2.js | 188 +++++++++++ .../tutorials/chapter3.js | 224 ++++++++++++ .../tutorials/chapter4p1.js | 213 ++++++++++++ .../tutorials/chapter4p2.js | 307 +++++++++++++++++ .../tutorials/chapter4p3.js | 314 +++++++++++++++++ .../tutorials/chapter5.js | 156 +++++++++ .../tutorials/chapter6.js | 267 +++++++++++++++ .../video/basicVideo.js | 16 +- .../video/lowResolutionCopies.js | 71 +--- .../audio/normalizeAudio/1.0.0/index.ts | 2 + .../runClassicFilterPlugin/1.0.0/index.ts | 2 + .../runClassicTranscodePlugin/1.0.0/index.ts | 2 + .../ffmpegCommand10BitVideo/1.0.0/index.ts | 2 + .../ffmpegCommandCropBlackBars/1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../ffmpegCommandExecute/1.0.0/index.ts | 2 + .../ffmpegCommandHdrToSdr/1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../ffmpegCommandRorderStreams/1.0.0/index.ts | 2 + .../ffmpegCommandSetContainer/1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../1.0.0/index.ts | 2 + .../ffmpegCommandStart/1.0.0/index.ts | 2 + .../file/checkFileExists/1.0.0/index.ts | 2 + .../file/checkFileExtension/1.0.0/index.ts | 2 + .../file/checkFileMedium/1.0.0/index.ts | 2 + .../file/checkFileNameIncludes/1.0.0/index.ts | 2 + .../file/checkFileSize/1.0.0/index.ts | 2 + .../file/compareFileSize/1.0.0/index.ts | 2 + .../file/copyToDirectory/1.0.0/index.ts | 14 + .../file/copyToWorkDirectory/1.0.0/index.ts | 14 + .../file/moveToDirectory/1.0.0/index.ts | 2 + .../file/moveToDirectory/2.0.0/index.ts | 14 + .../moveToOriginalDirectory/1.0.0/index.ts | 14 + .../file/renameFile/1.0.0/index.ts | 14 + .../file/replaceOriginalFile/1.0.0/index.ts | 4 +- .../file/setOriginalFile/1.0.0/index.ts | 2 + .../file/unpack/1.0.0/index.ts | 2 + .../handbrakeCustomArguments/1.0.0/index.ts | 2 + .../input/inputFile/1.0.0/index.ts | 3 +- .../tools/comment/1.0.0/index.ts | 53 +++ .../tools/failFlow/1.0.0/index.ts | 2 + .../tools/goToFlow/1.0.0/index.ts | 18 +- .../tools/onFlowError/1.0.0/index.ts | 45 +++ .../tools/requireReview/1.0.0/index.ts | 46 +++ .../tools/runMkvPropEdit/1.0.0/index.ts | 2 + .../tools/webRequest/1.0.0/index.ts | 83 ++++- .../video/check10Bit/1.0.0/index.ts | 2 + .../video/checkHdr/1.0.0/index.ts | 4 +- .../video/checkVideoBitrate/1.0.0/index.ts | 2 + .../video/checkVideoCodec/1.0.0/index.ts | 2 + .../video/checkVideoResolution/1.0.0/index.ts | 2 + .../video/transcodeVideo/1.0.0/index.ts | 2 + .../tutorials/chapter1.tsx | 112 ++++++ .../tutorials/chapter2.tsx | 191 +++++++++++ .../tutorials/chapter3.tsx | 227 +++++++++++++ .../tutorials/chapter4p1.tsx | 216 ++++++++++++ .../tutorials/chapter4p2.tsx | 310 +++++++++++++++++ .../tutorials/chapter4p3.tsx | 319 ++++++++++++++++++ .../tutorials/chapter5.tsx | 159 +++++++++ .../tutorials/chapter6.tsx | 270 +++++++++++++++ .../video/basicVideo.ts | 16 +- .../video/lowResolutionCopies.ts | 71 +--- .../1.0.0/interfaces/interfaces.ts | 14 +- 117 files changed, 4414 insertions(+), 168 deletions(-) create mode 100644 FlowPlugins/CommunityFlowPlugins/tools/comment/1.0.0/index.js create mode 100644 FlowPlugins/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.js create mode 100644 FlowPlugins/CommunityFlowPlugins/tools/requireReview/1.0.0/index.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter1.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter2.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter3.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p1.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p2.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p3.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter5.js create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter6.js create mode 100644 FlowPluginsTs/CommunityFlowPlugins/tools/comment/1.0.0/index.ts create mode 100644 FlowPluginsTs/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.ts create mode 100644 FlowPluginsTs/CommunityFlowPlugins/tools/requireReview/1.0.0/index.ts create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter1.tsx create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter2.tsx create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter3.tsx create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p1.tsx create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p2.tsx create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p3.tsx create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter5.tsx create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter6.tsx diff --git a/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js index e303899..bd3d957 100644 --- a/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js @@ -48,6 +48,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js index 805a212..33b6efe 100644 --- a/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js @@ -47,6 +47,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js index 7864635..66cbb6c 100644 --- a/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js @@ -57,6 +57,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.js index 2650072..95cec29 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.js index af2727a..20439f7 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.js index 5f30691..4d902ae 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.js index 0808373..11a4066 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js index 4d6d0e5..628bd27 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js @@ -57,6 +57,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: 2, icon: 'faPlay', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.js index 2e45bec..6cda6f2 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.js index 424b8fd..26fcf9c 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.js index 97b0d1c..dea876d 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.js index 7413f8e..49b4a0b 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.js index 54e675c..e1aa8f6 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js index d76a9c9..655e73a 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js @@ -12,6 +12,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.js index 9295b98..8606365 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.js index 61e49e3..992a31f 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js index 72e421c..ca53d0a 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js @@ -48,6 +48,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.js index 532b452..d00a4ac 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.js @@ -24,6 +24,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: 1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js index b9add34..a7dcf01 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js @@ -15,6 +15,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.js index 72f6c60..1311d3a 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.js index 7f0c9ec..dd60952 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.js index 3ad9a37..692f6b7 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.js index 620c13b..72dcfd7 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.js index dfbf12e..e403445 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js index 23cb848..e62257f 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js @@ -52,6 +52,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [ @@ -142,6 +144,16 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function } args.jobLog("Input path: ".concat(args.inputFileObj._id)); args.jobLog("Output path: ".concat(outputPath)); + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping copy.'); + return [2 /*return*/, { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }]; + } args.deps.fsextra.ensureDirSync(outputPath); return [4 /*yield*/, fs_1.promises.copyFile(args.inputFileObj._id, ouputFilePath)]; case 1: diff --git a/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js index 636fedb..a586cdc 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js @@ -53,6 +53,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], @@ -85,6 +87,16 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function }); args.jobLog("Input path: ".concat(args.inputFileObj._id)); args.jobLog("Output path: ".concat(outputPath)); + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping copy.'); + return [2 /*return*/, { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }]; + } args.deps.fsextra.ensureDirSync(outputPath); return [4 /*yield*/, fs_1.promises.copyFile(args.inputFileObj._id, ouputFilePath)]; case 1: diff --git a/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.js index 7525c8f..f5c7446 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js index 82b22e0..5ab8471 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js @@ -51,6 +51,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [ @@ -124,6 +126,16 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function }); args.jobLog("Input path: ".concat(args.inputFileObj._id)); args.jobLog("Output path: ".concat(ouputFilePath)); + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping move.'); + return [2 /*return*/, { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }]; + } args.deps.fsextra.ensureDirSync(outputPath); return [4 /*yield*/, (0, fileUtils_1.moveFileAndValidate)({ inputPath: args.inputFileObj._id, diff --git a/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js index 69f5fcf..06e3df4 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js @@ -47,6 +47,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], @@ -71,6 +73,16 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function container = (0, fileUtils_1.getContainer)(args.inputFileObj._id); outputDir = (0, fileUtils_1.getFileAbosluteDir)(args.originalLibraryFile._id); ouputFilePath = "".concat(outputDir, "/").concat(fileName, ".").concat(container); + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping move.'); + return [2 /*return*/, { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }]; + } return [4 /*yield*/, (0, fileUtils_1.moveFileAndValidate)({ inputPath: args.inputFileObj._id, outputPath: ouputFilePath, diff --git a/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js index 1fdbbd5..4fe65ed 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js @@ -47,6 +47,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ @@ -85,6 +87,16 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function newName = newName.replace(/\${container}/g, (0, fileUtils_1.getContainer)(args.inputFileObj._id)); fileDir = (0, fileUtils_1.getFileAbosluteDir)(args.inputFileObj._id); newPath = "".concat(fileDir, "/").concat(newName); + if (args.inputFileObj._id === newPath) { + args.jobLog('Input and output path are the same, skipping rename.'); + return [2 /*return*/, { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }]; + } return [4 /*yield*/, (0, fileUtils_1.moveFileAndValidate)({ inputPath: args.inputFileObj._id, outputPath: newPath, diff --git a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js index ddd4b2c..4ec9bff 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js @@ -41,12 +41,14 @@ var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils"); /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ var details = function () { return ({ name: 'Replace Original File', - description: 'Replace the original file', + description: 'Replace the original file. If the file hasn\'t changed then no action is taken.', style: { borderColor: 'green', }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js index 1ca5b52..4db30c2 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/file/unpack/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/unpack/1.0.0/index.js index a6210f3..d4bc94a 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/unpack/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/unpack/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js index 64691f8..173d49d 100644 --- a/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js @@ -49,6 +49,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js index 6f3fd72..ba0378d 100644 --- a/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: true, + pType: 'start', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/tools/comment/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/comment/1.0.0/index.js new file mode 100644 index 0000000..50cdaea --- /dev/null +++ b/FlowPlugins/CommunityFlowPlugins/tools/comment/1.0.0/index.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.plugin = exports.details = void 0; +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +var details = function () { return ({ + name: 'Comment', + nameUI: { + type: 'textarea', + style: { + height: '250px', + }, + }, + description: "Add a comment to your flow. Can place anywhere and link together.\n Any file input into the comment will be passed straight through.", + style: { + borderColor: 'white', + borderRadius: '10px', + backgroundColor: '#043775', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faComment', + inputs: [], + outputs: [ + { + number: 1, + tooltip: 'Continue to next plugin', + }, + ], +}); }; +exports.details = details; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +var plugin = function (args) { + var 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, + }; +}; +exports.plugin = plugin; diff --git a/FlowPlugins/CommunityFlowPlugins/tools/failFlow/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/failFlow/1.0.0/index.js index 2572c7f..471a3ce 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/failFlow/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/failFlow/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faExclamationTriangle', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.js index 88560da..33795c3 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.js @@ -6,14 +6,26 @@ var details = function () { return ({ name: 'Go To Flow', description: 'Go to a different flow', style: { - borderColor: 'red', - opacity: 0.5, + borderColor: 'green', }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', - inputs: [], + inputs: [ + { + name: 'flowId', + type: 'string', + defaultValue: '', + inputUI: { + type: 'dropdown', + options: [], + }, + tooltip: 'Specify flow ID to go to', + }, + ], outputs: [], }); }; exports.details = details; diff --git a/FlowPlugins/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.js new file mode 100644 index 0000000..57603b5 --- /dev/null +++ b/FlowPlugins/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.plugin = exports.details = void 0; +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +var details = function () { return ({ + name: 'On Flow Error', + description: "Runs if an error occurs in this specific flow. \n Won't run if error occurs in after going to a different flow (unless that flow comes back to this one).", + style: { + borderColor: 'red', + }, + tags: '', + isStartPlugin: false, + pType: 'onFlowError', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faArrowRight', + inputs: [], + outputs: [ + { + number: 1, + tooltip: 'Continue to next plugin', + }, + ], +}); }; +exports.details = details; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +var plugin = function (args) { + var 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, + }; +}; +exports.plugin = plugin; diff --git a/FlowPlugins/CommunityFlowPlugins/tools/requireReview/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/requireReview/1.0.0/index.js new file mode 100644 index 0000000..9f5c777 --- /dev/null +++ b/FlowPlugins/CommunityFlowPlugins/tools/requireReview/1.0.0/index.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.plugin = exports.details = void 0; +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +var details = function () { return ({ + name: 'Require Review', + description: "Makes the flow pause.\n The file will stay in the staging section on the Tdarr tab until the user clicks the \"Reviewed\" button.\n ", + style: { + borderColor: 'yellow', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faHand', + inputs: [], + outputs: [ + { + number: 1, + tooltip: 'Continue to next plugin', + }, + ], +}); }; +exports.details = details; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +var plugin = function (args) { + var 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, + }; +}; +exports.plugin = plugin; diff --git a/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js index d39a608..16cd806 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js @@ -48,6 +48,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js index 00f6e8b..a20adff 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js @@ -1,4 +1,40 @@ "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; /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ @@ -7,13 +43,63 @@ var details = function () { return ({ description: 'Send Web Request', style: { borderColor: 'green', - opacity: 0.5, }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', - inputs: [], + inputs: [ + { + name: 'method', + type: 'string', + defaultValue: 'post', + inputUI: { + type: 'dropdown', + options: [ + 'get', + 'post', + 'put', + 'delete', + ], + }, + tooltip: 'Specify request method', + }, + { + name: 'requestUrl', + type: 'string', + defaultValue: 'http://example.com', + inputUI: { + type: 'text', + }, + tooltip: 'Specify request URL', + }, + { + name: 'requestHeaders', + type: 'string', + defaultValue: "{\n \"Content-Type\": \"application/json\"\n}", + inputUI: { + type: 'textarea', + style: { + height: '100px', + }, + }, + tooltip: 'Specify request URL', + }, + { + name: 'requestBody', + type: 'string', + defaultValue: "{\n \"test\": \"test\"\n}", + inputUI: { + type: 'textarea', + style: { + height: '100px', + }, + }, + tooltip: 'Specify request body', + }, + ], outputs: [ { number: 1, @@ -23,14 +109,43 @@ var details = function () { return ({ }); }; exports.details = details; // eslint-disable-next-line @typescript-eslint/no-unused-vars -var plugin = function (args) { - var 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, - }; -}; +var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { + var lib, method, requestUrl, requestHeaders, requestBody, requestConfig, res, err_1; + 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); + method = String(args.inputs.method); + requestUrl = String(args.inputs.requestUrl); + requestHeaders = JSON.parse(String(args.inputs.requestHeaders)); + requestBody = JSON.parse(String(args.inputs.requestBody)); + requestConfig = { + method: method, + url: requestUrl, + headers: requestHeaders, + data: requestBody, + }; + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, args.deps.axios(requestConfig)]; + case 2: + res = _a.sent(); + args.jobLog("Web request succeeded: Status Code: ".concat(res.status)); + return [3 /*break*/, 4]; + case 3: + err_1 = _a.sent(); + args.jobLog('Web Request Failed'); + args.jobLog(JSON.stringify(err_1)); + throw new Error('Web Request Failed'); + case 4: return [2 /*return*/, { + outputFileObj: args.inputFileObj, + outputNumber: 1, + variables: args.variables, + }]; + } + }); +}); }; exports.plugin = plugin; diff --git a/FlowPlugins/CommunityFlowPlugins/video/check10Bit/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/check10Bit/1.0.0/index.js index f25604c..946ab41 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/check10Bit/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/check10Bit/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/video/checkHdr/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/checkHdr/1.0.0/index.js index 7aa6137..5c0b4cd 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/checkHdr/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/checkHdr/1.0.0/index.js @@ -3,13 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.plugin = exports.details = void 0; /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ var details = function () { return ({ - name: 'Check HDR', + name: 'Check HDR Video', description: 'Check if video is HDR', style: { borderColor: 'orange', }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.js index 64f9bf9..e9dd45d 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.js index e245b74..bf6d14e 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPlugins/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.js index bdbcfb2..0f7aca1 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.js @@ -10,6 +10,8 @@ var details = function () { return ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js index 8a3a2cf..f8eca12 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js @@ -11,6 +11,8 @@ var details = function () { return ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter1.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter1.js new file mode 100644 index 0000000..6f83c5f --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter1.js @@ -0,0 +1,109 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 1: Getting Started", + "description": "Chapter 1: Getting Started", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "_YTuyCZg3", + "position": { + "x": 644.7725474007168, + "y": -59.78556037646227 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "RQzydYbay", + "position": { + "x": 644.8785689715966, + "y": 285.63446752627516 + } + }, + { + "name": "1. Hello and welcome to Tdarr! This is a comment plugin. It doesn't do anything except help explain what's going on in a flow! You can place them anywhere and even link them together.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "df5cejfZP", + "position": { + "x": 774.8672137292031, + "y": -254.93856109034408 + } + }, + { + "name": "2. See! This comment won't do anything. The file from the previous plugin will be passed straight to the next plugin", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "30CajwYP2", + "position": { + "x": 644.6915712919753, + "y": 135.90533672888392 + } + }, + { + "name": "3. This here is an input file plugin and it's where every flow starts. You can only have ONE of these per flow.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "734dA76hg", + "position": { + "x": 444.5704060029551, + "y": -3.4693570957774114 + } + }, + { + "name": "4. That's it for this one, see you in the next chapter!", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "rkYonbPgX", + "position": { + "x": 443.9627448274695, + "y": 332.6480632642012 + } + } + ], + "flowEdges": [ + { + "source": "_YTuyCZg3", + "sourceHandle": "1", + "target": "30CajwYP2", + "targetHandle": null, + "id": "HUBIf10ny" + }, + { + "source": "30CajwYP2", + "sourceHandle": "1", + "target": "RQzydYbay", + "targetHandle": null, + "id": "Gd19X19w1" + }, + { + "source": "df5cejfZP", + "sourceHandle": "1", + "target": "30CajwYP2", + "targetHandle": null, + "id": "0EA92XgvP" + }, + { + "source": "734dA76hg", + "sourceHandle": "1", + "target": "rkYonbPgX", + "targetHandle": null, + "id": "lXbYouTsz" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter2.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter2.js new file mode 100644 index 0000000..fa3df8b --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter2.js @@ -0,0 +1,188 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 2: The Basics", + "description": "Chapter 2: The Basics", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "p2KPpRjnB", + "position": { + "x": 414.1115477468154, + "y": -216.87055056329626 + } + }, + { + "name": "1. The flow follows the current 'working file' which we can run checks and take actions on.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "ecLynt2i0", + "position": { + "x": 197.4536903827362, + "y": -265.54506622009336 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "jUig7_cRU", + "position": { + "x": 439.02078192278447, + "y": 122.5624161723565 + } + }, + { + "name": "Rename File to have _BigFile", + "sourceRepo": "Community", + "pluginName": "renameFile", + "version": "1.0.0", + "inputsDB": { + "fileRename": "${fileName}_BigFile.${container}" + }, + "id": "2l0pB_oXW", + "position": { + "x": 257.94626475719076, + "y": -21.078426771503985 + } + }, + { + "name": "Check File Size", + "sourceRepo": "Community", + "pluginName": "checkFileSize", + "version": "1.0.0", + "inputsDB": { + "greaterThan": "1", + "lessThan": "10000" + }, + "id": "oDkceuMNL", + "position": { + "x": 413.7748155871969, + "y": -110.90469509295968 + } + }, + { + "name": "Each plugin can only have one input handle but many plugins can link to it. Plugins which only check something are typically orange coloured and have 2 or more outputs.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "HTvMe6FSV", + "position": { + "x": 34.402701566604065, + "y": -184.71873806260285 + } + }, + { + "name": "Once you make an action on a file, in almost all cases the output is the new file. It will be located in your library cache folder.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "3O3ECJdF-", + "position": { + "x": 33.1114649694174, + "y": 113.19141666640903 + } + }, + { + "name": "Typical usage is to replace the original file. So this plugin will replace the original file with the new file.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "qA8hT1mmP", + "position": { + "x": 355.2680532661178, + "y": 199.7482565776084 + } + }, + { + "name": "This flow route doesn't change the file, so the Replace Original File plugin won't do anything and the flow will end succesffully.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "1vBp13H02", + "position": { + "x": 597.7143477707415, + "y": -48.77347490679115 + } + }, + { + "name": "Double click on a plugin to see what each GREEN output does. Ignore the RED outputs for now.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "s-m8qOhJ7", + "position": { + "x": 34.4143205430116, + "y": -5.644569445757767 + } + } + ], + "flowEdges": [ + { + "source": "p2KPpRjnB", + "sourceHandle": "1", + "target": "oDkceuMNL", + "targetHandle": null, + "id": "S8inufSTF" + }, + { + "source": "oDkceuMNL", + "sourceHandle": "1", + "target": "2l0pB_oXW", + "targetHandle": null, + "id": "LFCRv0WUh" + }, + { + "source": "2l0pB_oXW", + "sourceHandle": "1", + "target": "jUig7_cRU", + "targetHandle": null, + "id": "w0K3dKylI" + }, + { + "source": "oDkceuMNL", + "sourceHandle": "2", + "target": "jUig7_cRU", + "targetHandle": null, + "id": "SNdz3urrJ" + }, + { + "source": "ecLynt2i0", + "sourceHandle": "1", + "target": "HTvMe6FSV", + "targetHandle": null, + "id": "7qPHR6V9P" + }, + { + "source": "3O3ECJdF-", + "sourceHandle": "1", + "target": "qA8hT1mmP", + "targetHandle": null, + "id": "GjDmOX_EI" + }, + { + "source": "HTvMe6FSV", + "sourceHandle": "1", + "target": "s-m8qOhJ7", + "targetHandle": null, + "id": "0bPlyyR9Q" + }, + { + "source": "s-m8qOhJ7", + "sourceHandle": "1", + "target": "3O3ECJdF-", + "targetHandle": null, + "id": "Mxxly19vC" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter3.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter3.js new file mode 100644 index 0000000..33241a6 --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter3.js @@ -0,0 +1,224 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 3: FFmpeg Command", + "description": "Chapter 3: FFmpeg Command", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 648.9333795070321, + "y": -12.529435106431094 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 723.9430232247286, + "y": 534.7914903208923 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 400.42838247161643, + "y": 438.58749864385743 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "The FFmpeg Command plugins dynamically create an FFmpeg command depending on the input file", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "hGnpEHnk5", + "position": { + "x": 254.91444207269103, + "y": -44.61887485112061 + } + }, + { + "name": "You must always begin an FFmpeg command using the 'Begin Command' Plugin", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "saj94a135", + "position": { + "x": 201.288800916537, + "y": 100.94856498487928 + } + }, + { + "name": "In this example, if the video file is already in h265/hevc and mkv container, no action will be taken on the file. To force re-encoding, you can use the forceEncoding option on the Video Encoder plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "sb5MvVryc", + "position": { + "x": 201.61485276007585, + "y": 222.09640730256172 + } + }, + { + "name": "Once the FFmpeg command has been created, you need to execute it using this plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "V0QGN5PKA", + "position": { + "x": 202.61485276007582, + "y": 440.0964073025617 + } + }, + { + "name": "Once again, the output contains the new cache file (or the original file if no action was taken on the file). If there's a new cache file, the 'Replace Original File' plugin will replace the original file, else it will do nothing.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "i4eODNlBc", + "position": { + "x": 536.6148527600759, + "y": 568.0964073025617 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "k9JywvYcK" + }, + { + "source": "hGnpEHnk5", + "sourceHandle": "1", + "target": "saj94a135", + "targetHandle": null, + "id": "dX6DiWPJX" + }, + { + "source": "saj94a135", + "sourceHandle": "1", + "target": "sb5MvVryc", + "targetHandle": null, + "id": "0MAqJvu_e" + }, + { + "source": "sb5MvVryc", + "sourceHandle": "1", + "target": "V0QGN5PKA", + "targetHandle": null, + "id": "57NrKKG2n" + }, + { + "source": "V0QGN5PKA", + "sourceHandle": "1", + "target": "i4eODNlBc", + "targetHandle": null, + "id": "BHwljK8rj" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p1.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p1.js new file mode 100644 index 0000000..5bf45db --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p1.js @@ -0,0 +1,213 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 4: Flow Errors Part 1", + "description": "Chapter 4: Flow Errors Part 1", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 773.1888091521793, + "y": 727.583503313465 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 416.1451226612283, + "y": 433.3485852473201 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "If an unhandled error occurs during the flow, the flow will stop and the file will be moved to the Transcode: Error/Cancelled tab. You can then review the job report to see what went wrong.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "mNaOzfS0Y", + "position": { + "x": 604.5850500985517, + "y": 166.18413013606266 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "mNwoZNlmo", + "position": { + "x": 616.8564543703576, + "y": 578.3209514237449 + } + }, + { + "name": "Compare File Size", + "sourceRepo": "Community", + "pluginName": "compareFileSize", + "version": "1.0.0", + "id": "YGd45fK8d", + "position": { + "x": 518.9335431151374, + "y": 502.8688871164036 + } + }, + { + "name": "You can also force a flow to fail which can be useful in certain situation such as here.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "9QkIvxxxx", + "position": { + "x": 678.3646507954192, + "y": 429.7476734555484 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "YGd45fK8d", + "targetHandle": null, + "id": "bldP67hmm" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "fw9Le5zqo" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "2", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "wd7SmimpM" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "3", + "target": "mNwoZNlmo", + "targetHandle": null, + "id": "RmpqCf-Vh" + }, + { + "source": "mNaOzfS0Y", + "sourceHandle": "1", + "target": "9QkIvxxxx", + "targetHandle": null, + "id": "4Yez6rEN2" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p2.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p2.js new file mode 100644 index 0000000..ead0744 --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p2.js @@ -0,0 +1,307 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 4: Flow Errors Part 2 - On Flow Error", + "description": "Chapter 4: Flow Errors Part 2 - On Flow Error", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 773.1888091521793, + "y": 727.583503313465 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 416.1451226612283, + "y": 433.3485852473201 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "mNwoZNlmo", + "position": { + "x": 616.8564543703576, + "y": 578.3209514237449 + } + }, + { + "name": "Compare File Size", + "sourceRepo": "Community", + "pluginName": "compareFileSize", + "version": "1.0.0", + "id": "YGd45fK8d", + "position": { + "x": 518.9335431151374, + "y": 502.8688871164036 + } + }, + { + "name": "On Flow Error", + "sourceRepo": "Community", + "pluginName": "onFlowError", + "version": "1.0.0", + "id": "yMWso-uZa", + "position": { + "x": 922.4197900595414, + "y": 161.088098623682 + } + }, + { + "name": "1. To handle an error that occurs anywhere in this specifc flow, you can use the 'On Flow Error' plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "jpEn9FVQX", + "position": { + "x": 1018.5785464566798, + "y": 65.98583847747655 + } + }, + { + "name": "All unhandled errors and the 'Fail Flow' plugin IN THIS FLOW will trigger the 'On Flow Error' plugin IN THIS FLOW", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "vRFTPo0p5", + "position": { + "x": 698.3866844766682, + "y": 451.2472106052397 + } + }, + { + "name": "If another error occurs in the 'On Flow Error' flow then the flow will end and the file will be moved to the transcode 'Transcode: Error/Cancelled' tab. The 'On Flow Error' plugin will NOT be run again (to prevent infinite error loops)", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "fAQouEkEY", + "position": { + "x": 1183.421069816697, + "y": 228.19157008625297 + } + }, + { + "name": "Send Web Request", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "42P9lb0B3", + "position": { + "x": 897.7260729664589, + "y": 469.1243455181426 + } + }, + { + "name": "Even if all the plugins in the error flow complete successfully, the file will still be moved to the 'Transcode: Error/Cancelled' tab at the end.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "Ke1S57we6", + "position": { + "x": 1006.3188415680227, + "y": 541.3784972055968 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "yj3grm5d8", + "position": { + "x": 1047.7090907308577, + "y": 394.7331214427515 + } + }, + { + "name": "Check File Exists", + "sourceRepo": "Community", + "pluginName": "checkFileExists", + "version": "1.0.0", + "id": "S_rVuKn8S", + "position": { + "x": 926.2665476107438, + "y": 277.7066707997331 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "YGd45fK8d", + "targetHandle": null, + "id": "bldP67hmm" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "fw9Le5zqo" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "2", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "wd7SmimpM" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "3", + "target": "mNwoZNlmo", + "targetHandle": null, + "id": "RmpqCf-Vh" + }, + { + "source": "jpEn9FVQX", + "sourceHandle": "1", + "target": "fAQouEkEY", + "targetHandle": null, + "id": "5mv1ls7Ib" + }, + { + "source": "fAQouEkEY", + "sourceHandle": "1", + "target": "Ke1S57we6", + "targetHandle": null, + "id": "_VEvhMOtk" + }, + { + "source": "yMWso-uZa", + "sourceHandle": "1", + "target": "S_rVuKn8S", + "targetHandle": null, + "id": "yweCdlSWM" + }, + { + "source": "S_rVuKn8S", + "sourceHandle": "1", + "target": "yj3grm5d8", + "targetHandle": null, + "id": "xI3eh7wZp" + }, + { + "source": "S_rVuKn8S", + "sourceHandle": "2", + "target": "42P9lb0B3", + "targetHandle": null, + "id": "V-qf6QBC4" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p3.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p3.js new file mode 100644 index 0000000..e04a57b --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter4p3.js @@ -0,0 +1,314 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 4: Flow Errors Part 3 - Plugin-specific Error Handling", + "description": "Chapter 4: Flow Errors Part 3 - Plugin-specific Error Handling", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 541.9238836009351, + "y": 32.863009312154745 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 773.1888091521793, + "y": 727.583503313465 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 399.8062875388412, + "y": 417.9708580733087 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "mNwoZNlmo", + "position": { + "x": 616.8564543703576, + "y": 578.3209514237449 + } + }, + { + "name": "Compare File Size", + "sourceRepo": "Community", + "pluginName": "compareFileSize", + "version": "1.0.0", + "id": "YGd45fK8d", + "position": { + "x": 518.9335431151374, + "y": 502.8688871164036 + } + }, + { + "name": "On Flow Error", + "sourceRepo": "Community", + "pluginName": "onFlowError", + "version": "1.0.0", + "id": "yMWso-uZa", + "position": { + "x": 1060.1712089610803, + "y": 145.28055874973487 + } + }, + { + "name": "Send Web Request", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "Bc2bZtgBc", + "position": { + "x": 922.4677516191077, + "y": 279.351803016885 + } + }, + { + "name": "Tdarr also offers plugin-specific error handling using the RED connection on each plugin. The flow path will be triggered if an unhandled error occurs within that specific plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "H__edbTLw", + "position": { + "x": 767.7320724785685, + "y": -230.81328720265796 + } + }, + { + "name": "Send Web Request: Ping Melissa to check network storage", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "X9NEJCEgk", + "position": { + "x": 880.7836232681229, + "y": -39.676791653194755 + } + }, + { + "name": "Send Web Request: Ping Romesh to check transcode log", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "BO0c5TlKq", + "position": { + "x": 661.6510110384603, + "y": 300.5554220718082 + } + }, + { + "name": "This allows very specific error flows, for example pinging different team members for different errors.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "zTVwtbuxI", + "position": { + "x": 657.8440331872728, + "y": 166.67570418496692 + } + }, + { + "name": "The plugin-specifc error handling will NOT trigger the 'On Flow Error' plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "N9E-u8l0o", + "position": { + "x": 1170.7519669401188, + "y": 56.50523025141092 + } + }, + { + "name": "But you can still join the plugin-specific error handling flow onto the rest of the 'On Flow Error' Flow", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "AOi3vLobO", + "position": { + "x": 1125.9768689675689, + "y": 284.4868129833375 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "YGd45fK8d", + "targetHandle": null, + "id": "bldP67hmm" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "fw9Le5zqo" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "2", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "wd7SmimpM" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "3", + "target": "mNwoZNlmo", + "targetHandle": null, + "id": "RmpqCf-Vh" + }, + { + "source": "yMWso-uZa", + "sourceHandle": "1", + "target": "Bc2bZtgBc", + "targetHandle": null, + "id": "7k8P1VYv6" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "err1", + "target": "X9NEJCEgk", + "targetHandle": null, + "id": "9rhuR5eSI" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "err1", + "target": "BO0c5TlKq", + "targetHandle": null, + "id": "ttZgLtKF3" + }, + { + "source": "H__edbTLw", + "sourceHandle": "1", + "target": "zTVwtbuxI", + "targetHandle": null, + "id": "5sjNNMXAK" + }, + { + "source": "X9NEJCEgk", + "sourceHandle": "1", + "target": "Bc2bZtgBc", + "targetHandle": null, + "id": "OW-yqRQH5" + }, + { + "source": "N9E-u8l0o", + "sourceHandle": "1", + "target": "AOi3vLobO", + "targetHandle": null, + "id": "K440_LQm_" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter5.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter5.js new file mode 100644 index 0000000..27fc615 --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter5.js @@ -0,0 +1,156 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 5: Go To Flow", + "description": "Chapter 5: Go To Flow", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "On Flow Error", + "sourceRepo": "Community", + "pluginName": "onFlowError", + "version": "1.0.0", + "id": "yMWso-uZa", + "position": { + "x": 1122.33024332169, + "y": 226.4434391132305 + } + }, + { + "name": "You can use the Go To Flow to go to a different flow. The working file will be passed to that flow and will continue as normal. Double click on the plugin to select the flow you'd like to go to.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "rHV28Kbkv", + "position": { + "x": 462.0014512264263, + "y": 65.78412788449464 + } + }, + { + "name": "Go To Flow", + "sourceRepo": "Community", + "pluginName": "goToFlow", + "version": "1.0.0", + "id": "gOrbropah", + "position": { + "x": 572.7308895655424, + "y": 234.58707695358294 + } + }, + { + "name": "By design, if an error happens in a different flow, this 'On Flow Error' will not be called. Across all flows, the 'On Flow Error' plugin will only be called ONCE in the flow that the FIRST error occurred in. 'On Flow Error' plugins in flows before or after the current flow will not be called, even if an error occurs in them at a later time.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "7azuiVML9", + "position": { + "x": 1310.2464269220861, + "y": 134.70796523124582 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "ELn0kcc-1", + "position": { + "x": 778.4079905179452, + "y": 428.7308825254772 + } + }, + { + "name": "Go To Flow", + "sourceRepo": "Community", + "pluginName": "goToFlow", + "version": "1.0.0", + "id": "j5dOGi9zz", + "position": { + "x": 1122.484636036451, + "y": 397.97542817745443 + } + }, + { + "name": "After an error has occured you can even go to a different flow! So you can create a dedicated Error flow and go to it each time an error occurs within any of your flows! Useful for notifications etc.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "EpMxr2UuE", + "position": { + "x": 1205.7688307851763, + "y": 479.4625484620842 + } + } + ], + "flowEdges": [ + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "gOrbropah", + "targetHandle": null, + "id": "qVWE7SWt2" + }, + { + "source": "rHV28Kbkv", + "sourceHandle": "1", + "target": "7azuiVML9", + "targetHandle": null, + "id": "i0OUf3hAM" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "ELn0kcc-1", + "targetHandle": null, + "id": "hTaDcPw24" + }, + { + "source": "yMWso-uZa", + "sourceHandle": "1", + "target": "j5dOGi9zz", + "targetHandle": null, + "id": "6Hrh7vbfW" + }, + { + "source": "7azuiVML9", + "sourceHandle": "1", + "target": "EpMxr2UuE", + "targetHandle": null, + "id": "S_36mCXnL" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter6.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter6.js new file mode 100644 index 0000000..aedc2a2 --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter6.js @@ -0,0 +1,267 @@ +"use strict"; +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.details = void 0; +var details = function () { return ({ + "name": "Chapter 6: The Review System", + "description": "Chapter 6: The Review System", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "R0gX9B20d", + "position": { + "x": 879.7236115475249, + "y": 934.782797377857 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "U6N3AQubH", + "position": { + "x": 546.8854528742303, + "y": 174.54090453410515 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "Lv-zb-iTw", + "position": { + "x": 543.172691292081, + "y": 368.6158072160807 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "1pOFUCuQR", + "position": { + "x": 545.0642491154337, + "y": 274.70711126791645 + } + }, + { + "name": "Require Review", + "sourceRepo": "Community", + "pluginName": "requireReview", + "version": "1.0.0", + "id": "oHpu2fZOi", + "position": { + "x": 631.7959812272709, + "y": 459.542392214296 + } + }, + { + "name": "Run Classic Transcode Plugin: Add Audio Stream", + "sourceRepo": "Community", + "pluginName": "runClassicTranscodePlugin", + "version": "1.0.0", + "inputsDB": { + "pluginSourceId": "Community:Tdarr_Plugin_00td_action_add_audio_stream_codec" + }, + "id": "RZX5jIP5I", + "position": { + "x": 632.2402074212371, + "y": 545.8356807635909 + } + }, + { + "name": "Run Classic Transcode Plugin", + "sourceRepo": "Community", + "pluginName": "runClassicTranscodePlugin", + "version": "1.0.0", + "inputsDB": { + "pluginSourceId": "Community:Tdarr_Plugin_00td_action_remove_audio_by_channel_count", + "channelCounts": "8" + }, + "id": "3zj5puRQ1", + "position": { + "x": 696.5390735282473, + "y": 758.7339551203235 + } + }, + { + "name": "Require Review", + "sourceRepo": "Community", + "pluginName": "requireReview", + "version": "1.0.0", + "id": "q8Pz_3HGh", + "position": { + "x": 634.7388490591334, + "y": 648.8668893974542 + } + }, + { + "name": "You can pause a flow by using the 'Require Review' plugin. This will cause the file to stay in the staging section on the Tdarr tab until the 'Reviewed' button is pressed. This allows you to check the last completed cache file.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "YPyMAbZ76", + "position": { + "x": 856.2716462414401, + "y": 343.06736953610425 + } + }, + { + "name": "Once the file has been reviewed, the flow will continue from the next plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "REt4UEEGD", + "position": { + "x": 856.7260936183322, + "y": 531.8099095812979 + } + }, + { + "name": "You can 'Require Review' as much as you like!", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "UhuSLjA8g", + "position": { + "x": 857.7070495622867, + "y": 709.362935437006 + } + }, + { + "name": "Require Review", + "sourceRepo": "Community", + "pluginName": "requireReview", + "version": "1.0.0", + "id": "8IU0bhEJs", + "position": { + "x": 780.2115299899054, + "y": 844.7348557026837 + } + } + ], + "flowEdges": [ + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "U6N3AQubH", + "sourceHandle": "1", + "target": "1pOFUCuQR", + "targetHandle": null, + "id": "RdnvWmv0o" + }, + { + "source": "1pOFUCuQR", + "sourceHandle": "1", + "target": "Lv-zb-iTw", + "targetHandle": null, + "id": "p-VkIS6DK" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "U6N3AQubH", + "targetHandle": null, + "id": "x_vWzShYB" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "R0gX9B20d", + "targetHandle": null, + "id": "CtIsUppTB" + }, + { + "source": "Lv-zb-iTw", + "sourceHandle": "1", + "target": "oHpu2fZOi", + "targetHandle": null, + "id": "d9tDIjd1L" + }, + { + "source": "oHpu2fZOi", + "sourceHandle": "1", + "target": "RZX5jIP5I", + "targetHandle": null, + "id": "kFP4WRftx" + }, + { + "source": "RZX5jIP5I", + "sourceHandle": "1", + "target": "q8Pz_3HGh", + "targetHandle": null, + "id": "nqbQJ9wUz" + }, + { + "source": "q8Pz_3HGh", + "sourceHandle": "1", + "target": "3zj5puRQ1", + "targetHandle": null, + "id": "Vx60urLP7" + }, + { + "source": "YPyMAbZ76", + "sourceHandle": "1", + "target": "REt4UEEGD", + "targetHandle": null, + "id": "B85VWeRRu" + }, + { + "source": "REt4UEEGD", + "sourceHandle": "1", + "target": "UhuSLjA8g", + "targetHandle": null, + "id": "wk44u1THD" + }, + { + "source": "3zj5puRQ1", + "sourceHandle": "1", + "target": "8IU0bhEJs", + "targetHandle": null, + "id": "9Q4vfDFmI" + }, + { + "source": "8IU0bhEJs", + "sourceHandle": "1", + "target": "R0gX9B20d", + "targetHandle": null, + "id": "8wXVHwiDC" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/CommunityFlowTemplates/video/basicVideo.js b/FlowPlugins/CommunityFlowTemplates/video/basicVideo.js index a1f6f65..3a5f94c 100644 --- a/FlowPlugins/CommunityFlowTemplates/video/basicVideo.js +++ b/FlowPlugins/CommunityFlowTemplates/video/basicVideo.js @@ -6,7 +6,7 @@ exports.details = void 0; var details = function () { return ({ name: 'Basic HEVC Video Flow', description: 'Basic HEVC Video Flow', - tags: 'video', + tags: '', flowPlugins: [ { name: 'Input File', @@ -93,8 +93,6 @@ var details = function () { return ({ target: '91b7IrsEc', targetHandle: null, id: 'HhF4rw2DZ', - animated: true, - type: 'smoothstep', }, { source: '91b7IrsEc', @@ -102,8 +100,6 @@ var details = function () { return ({ target: '4Swd6qzvc', targetHandle: null, id: 'jJizyFUcr', - animated: true, - type: 'smoothstep', }, { source: '4Swd6qzvc', @@ -111,8 +107,6 @@ var details = function () { return ({ target: '8B_6pRd_U', targetHandle: null, id: '3Df7Xoy93', - animated: true, - type: 'smoothstep', }, { source: '450g167D8', @@ -120,8 +114,6 @@ var details = function () { return ({ target: '4fkfOyR3l', targetHandle: null, id: 'rE5Dsh9KM', - animated: true, - type: 'smoothstep', }, { source: '91b7IrsEc', @@ -129,8 +121,6 @@ var details = function () { return ({ target: '4fkfOyR3l', targetHandle: null, id: 'W2nVG7ts5', - animated: true, - type: 'smoothstep', }, { source: '8B_6pRd_U', @@ -138,8 +128,6 @@ var details = function () { return ({ target: 'TtKXi3Q7h', targetHandle: null, id: 'epqtLsPuG', - animated: true, - type: 'smoothstep', }, { source: 'TtKXi3Q7h', @@ -147,8 +135,6 @@ var details = function () { return ({ target: '450g167D8', targetHandle: null, id: 'ljOeP0cAZ', - animated: true, - type: 'smoothstep', }, ], }); }; diff --git a/FlowPlugins/CommunityFlowTemplates/video/lowResolutionCopies.js b/FlowPlugins/CommunityFlowTemplates/video/lowResolutionCopies.js index 27848be..a1fef3c 100644 --- a/FlowPlugins/CommunityFlowTemplates/video/lowResolutionCopies.js +++ b/FlowPlugins/CommunityFlowTemplates/video/lowResolutionCopies.js @@ -6,7 +6,7 @@ exports.details = void 0; var details = function () { return ({ name: 'Create Low Resolution Video Copies', description: 'Create Low Resolution Video Copies', - tags: 'video', + tags: '', flowPlugins: [ { name: 'Input File', @@ -77,14 +77,14 @@ var details = function () { return ({ sourceRepo: 'Community', pluginName: 'checkFileNameIncludes', version: '1.0.0', + inputsDB: { + terms: '_720p,_480p', + }, id: 'wRipuaq4G', position: { x: 763.9976994431687, y: 198.97576654117708, }, - inputsDB: { - terms: '_720p,_480p', - }, }, { name: 'Rename File _720p', @@ -138,14 +138,14 @@ var details = function () { return ({ sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVideoEncoder', version: '1.0.0', + inputsDB: { + forceEncoding: 'true', + }, id: 'wcmBN2N02', position: { x: 1171.0819612214827, y: 257.19366435734827, }, - inputsDB: { - forceEncoding: 'true', - }, }, { name: 'Execute', @@ -185,42 +185,42 @@ var details = function () { return ({ sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVdeoResolution', version: '1.0.0', + inputsDB: { + targetResolution: '480p', + }, id: 'dzFEwECXB', position: { x: 1396.1961096759603, y: 309.9727302535869, }, - inputsDB: { - targetResolution: '480p', - }, }, { name: 'Set Video Encoder', sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVideoEncoder', version: '1.0.0', + inputsDB: { + forceEncoding: 'true', + }, id: '_EynbvgSl', position: { x: 1396.1961096759603, y: 214.35898180146438, }, - inputsDB: { - forceEncoding: 'true', - }, }, { name: 'Set Video Resolution 720p', sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVdeoResolution', version: '1.0.0', + inputsDB: { + targetResolution: '720p', + }, id: 'CMm7MlE7g', position: { x: 1169.6624226114702, y: 336.82482287402803, }, - inputsDB: { - targetResolution: '720p', - }, }, ], flowEdges: [ @@ -230,8 +230,6 @@ var details = function () { return ({ target: 'wRipuaq4G', targetHandle: null, id: 'IE_oGhETB', - animated: true, - type: 'smoothstep', }, { source: 'wRipuaq4G', @@ -239,8 +237,6 @@ var details = function () { return ({ target: '1pj9oSg5G', targetHandle: null, id: 'QR6uGNUhE', - animated: true, - type: 'smoothstep', }, { source: 'wRipuaq4G', @@ -248,8 +244,6 @@ var details = function () { return ({ target: 'VyNRD3YjM', targetHandle: null, id: 'sh_kstv0D', - animated: true, - type: 'smoothstep', }, { source: 'uDC6XT1Jy', @@ -257,8 +251,6 @@ var details = function () { return ({ target: '1pj9oSg5G', targetHandle: null, id: 'G5jl85ijr', - animated: true, - type: 'smoothstep', }, { source: 'VyNRD3YjM', @@ -266,8 +258,6 @@ var details = function () { return ({ target: 'uDC6XT1Jy', targetHandle: null, id: 'DmUL9DS8q', - animated: true, - type: 'smoothstep', }, { source: 'VpCD-7LZJ', @@ -275,8 +265,6 @@ var details = function () { return ({ target: 'mFRK-Z9WC', targetHandle: null, id: 'ap4YXAxy3', - animated: true, - type: 'smoothstep', }, { source: 'cTKbaB8nT', @@ -284,8 +272,6 @@ var details = function () { return ({ target: 'mFRK-Z9WC', targetHandle: null, id: 'i9fr5J5pL', - animated: true, - type: 'smoothstep', }, { source: 'mFRK-Z9WC', @@ -293,8 +279,6 @@ var details = function () { return ({ target: 'oD4u5PY9T', targetHandle: null, id: 'KUw59S_Zl', - animated: true, - type: 'smoothstep', }, { source: 'oD4u5PY9T', @@ -302,8 +286,6 @@ var details = function () { return ({ target: 'wRipuaq4G', targetHandle: null, id: 'HlM4E6eV8', - animated: true, - type: 'smoothstep', }, { source: 'tmUd79-Fb', @@ -311,9 +293,6 @@ var details = function () { return ({ target: 'cTKbaB8nT', targetHandle: null, id: 'iJLmmoDLp', - animated: true, - type: 'smoothstep', - selected: false, }, { source: 'uDC6XT1Jy', @@ -321,8 +300,6 @@ var details = function () { return ({ target: 'FSG9AOX5c', targetHandle: null, id: 'iRTrU8utq', - animated: true, - type: 'smoothstep', }, { source: 'dzFEwECXB', @@ -330,8 +307,6 @@ var details = function () { return ({ target: 'gbY0xIJnB', targetHandle: null, id: 'A5cyCu_kx', - animated: true, - type: 'smoothstep', }, { source: 'Jn6dcKd3i', @@ -339,8 +314,6 @@ var details = function () { return ({ target: '_EynbvgSl', targetHandle: null, id: '1HajidLz-', - animated: true, - type: 'smoothstep', }, { source: '_EynbvgSl', @@ -348,8 +321,6 @@ var details = function () { return ({ target: 'dzFEwECXB', targetHandle: null, id: 'vEESYeSsL', - animated: true, - type: 'smoothstep', }, { source: 'VyNRD3YjM', @@ -357,8 +328,6 @@ var details = function () { return ({ target: 'Jn6dcKd3i', targetHandle: null, id: 'q8zd_qCSU', - animated: true, - type: 'smoothstep', }, { source: 'gbY0xIJnB', @@ -366,8 +335,6 @@ var details = function () { return ({ target: 'VpCD-7LZJ', targetHandle: null, id: 'leYMQdxHw', - animated: true, - type: 'smoothstep', }, { source: 'FSG9AOX5c', @@ -375,8 +342,6 @@ var details = function () { return ({ target: 'wcmBN2N02', targetHandle: null, id: 'Dl5MCSqQM', - animated: true, - type: 'smoothstep', }, { source: 'wcmBN2N02', @@ -384,8 +349,6 @@ var details = function () { return ({ target: 'CMm7MlE7g', targetHandle: null, id: 'GIpbjomC8', - animated: true, - type: 'smoothstep', }, { source: 'CMm7MlE7g', @@ -393,8 +356,6 @@ var details = function () { return ({ target: 'tmUd79-Fb', targetHandle: null, id: 'AxR9R10MY', - animated: true, - type: 'smoothstep', }, ], }); }; diff --git a/FlowPluginsTs/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.ts index caa1558..eabfbdd 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.ts @@ -15,6 +15,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.ts index 04c946b..c1e90dc 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = (): IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.ts index 3691765..91dcb07 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.ts @@ -15,6 +15,8 @@ const details = (): IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.ts index ba54fd3..cc348a6 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommand10BitVideo/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.ts index c28801c..9f05381 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCropBlackBars/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.ts index 52392a0..799dda5 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandCustomArguments/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.ts index d7d9365..c937e0a 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandEnsureAudioStream/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.ts index 5895c30..b3a1125 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.ts @@ -17,6 +17,8 @@ const details = (): IpluginDetails => ({ tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: 2, icon: 'faPlay', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.ts index 571671e..1602274 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandHdrToSdr/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.ts index 2b79ede..fd925f3 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandNormalizeAudio/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.ts index dbf9aa9..041da60 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveDataStreams/1.0.0/index.ts @@ -16,6 +16,8 @@ const details = ():IpluginDetails => ({ tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.ts index 60ac7a8..f256615 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRemoveSubtitles/1.0.0/index.ts @@ -15,6 +15,8 @@ const details = ():IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.ts index 153ae14..02e0283 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandRorderStreams/1.0.0/index.ts @@ -15,6 +15,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts index 15e83ab..ef47229 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts @@ -16,6 +16,8 @@ const details = ():IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.ts index 3190f72..a733028 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVdeoResolution/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.ts index a7c5481..4e21bed 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoBitrate/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts index 6f31286..30c44e4 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts @@ -16,6 +16,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.ts index d4d1c88..a282407 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandStart/1.0.0/index.ts @@ -18,6 +18,8 @@ const details = () :IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: 1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.ts index bc268ed..2b55581 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.ts @@ -15,6 +15,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.ts index 4cec839..1149b1c 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileExtension/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.ts index c3ac47e..3fc1ebf 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileMedium/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = (): IpluginDetails => ({ tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.ts index 1241372..21680e8 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileNameIncludes/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.ts index 04043c5..b435053 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/checkFileSize/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.ts index b9ab91b..c1a041e 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/compareFileSize/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = (): IpluginDetails => ({ tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.ts index eaa0ef7..cc9b75b 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.ts @@ -17,6 +17,8 @@ const details = (): IpluginDetails => ({ tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [ @@ -115,6 +117,18 @@ const plugin = async (args: IpluginInputArgs): Promise => { args.jobLog(`Input path: ${args.inputFileObj._id}`); args.jobLog(`Output path: ${outputPath}`); + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping copy.'); + + return { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }; + } + args.deps.fsextra.ensureDirSync(outputPath); await fs.copyFile(args.inputFileObj._id, ouputFilePath); diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.ts index c39cf4d..04458d1 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.ts @@ -18,6 +18,8 @@ const details = (): IpluginDetails => ({ tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], @@ -51,6 +53,18 @@ const plugin = async (args: IpluginInputArgs): Promise => { args.jobLog(`Input path: ${args.inputFileObj._id}`); args.jobLog(`Output path: ${outputPath}`); + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping copy.'); + + return { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }; + } + args.deps.fsextra.ensureDirSync(outputPath); await fs.copyFile(args.inputFileObj._id, ouputFilePath); diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.ts index c3348cd..1184e92 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = ():IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.ts index cd276c6..bc0ee8b 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.ts @@ -18,6 +18,8 @@ const details = ():IpluginDetails => ({ tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [ @@ -97,6 +99,18 @@ const plugin = async (args:IpluginInputArgs):Promise => { args.jobLog(`Input path: ${args.inputFileObj._id}`); args.jobLog(`Output path: ${ouputFilePath}`); + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping move.'); + + return { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }; + } + args.deps.fsextra.ensureDirSync(outputPath); await moveFileAndValidate({ diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.ts index c4f557b..693027a 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.ts @@ -17,6 +17,8 @@ const details = ():IpluginDetails => ({ tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], @@ -40,6 +42,18 @@ const plugin = async (args:IpluginInputArgs):Promise => { const ouputFilePath = `${outputDir}/${fileName}.${container}`; + if (args.inputFileObj._id === ouputFilePath) { + args.jobLog('Input and output path are the same, skipping move.'); + + return { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }; + } + await moveFileAndValidate({ inputPath: args.inputFileObj._id, outputPath: ouputFilePath, diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/renameFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/renameFile/1.0.0/index.ts index 4af3730..81b21a3 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/renameFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/renameFile/1.0.0/index.ts @@ -16,6 +16,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ @@ -54,6 +56,18 @@ const plugin = async (args: IpluginInputArgs): Promise => { const fileDir = getFileAbosluteDir(args.inputFileObj._id); const newPath = `${fileDir}/${newName}`; + if (args.inputFileObj._id === newPath) { + args.jobLog('Input and output path are the same, skipping rename.'); + + return { + outputFileObj: { + _id: args.inputFileObj._id, + }, + outputNumber: 1, + variables: args.variables, + }; + } + await moveFileAndValidate({ inputPath: args.inputFileObj._id, outputPath: newPath, diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts index 18176a1..8f4f68c 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts @@ -10,12 +10,14 @@ import { /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ const details = (): IpluginDetails => ({ name: 'Replace Original File', - description: 'Replace the original file', + description: 'Replace the original file. If the file hasn\'t changed then no action is taken.', style: { borderColor: 'green', }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts index 4ae3b77..3c0d4ff 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = ():IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/unpack/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/unpack/1.0.0/index.ts index fbff155..bac4c38 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/unpack/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/unpack/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = ():IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.ts index 63dab42..7ed495b 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.ts @@ -16,6 +16,8 @@ const details = ():IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/input/inputFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/input/inputFile/1.0.0/index.ts index 299cab9..e638af8 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/input/inputFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/input/inputFile/1.0.0/index.ts @@ -12,8 +12,9 @@ const details = ():IpluginDetails => ({ borderColor: 'pink', }, tags: '', - isStartPlugin: true, + pType: 'start', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/comment/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/comment/1.0.0/index.ts new file mode 100644 index 0000000..60d8512 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/comment/1.0.0/index.ts @@ -0,0 +1,53 @@ +import { + IpluginDetails, + IpluginInputArgs, + IpluginOutputArgs, +} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces'; + +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +const details = (): IpluginDetails => ({ + name: 'Comment', + nameUI: { + type: 'textarea', + style: { + height: '250px', + }, + }, + description: `Add a comment to your flow. Can place anywhere and link together. + Any file input into the comment will be passed straight through.`, + style: { + borderColor: 'white', + borderRadius: '10px', + backgroundColor: '#043775', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faComment', + 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, +}; diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/failFlow/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/failFlow/1.0.0/index.ts index 7cccee8..a39cb0c 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/failFlow/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/failFlow/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = ():IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faExclamationTriangle', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.ts index 235ab75..51eb7f6 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/goToFlow/1.0.0/index.ts @@ -9,14 +9,26 @@ const details = ():IpluginDetails => ({ name: 'Go To Flow', description: 'Go to a different flow', style: { - borderColor: 'red', - opacity: 0.5, + borderColor: 'green', }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', - inputs: [], + inputs: [ + { + name: 'flowId', + type: 'string', + defaultValue: '', + inputUI: { + type: 'dropdown', + options: [], + }, + tooltip: 'Specify flow ID to go to', + }, + ], outputs: [], }); diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.ts new file mode 100644 index 0000000..1546bc1 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/onFlowError/1.0.0/index.ts @@ -0,0 +1,45 @@ +import { + IpluginDetails, + IpluginInputArgs, + IpluginOutputArgs, +} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces'; + +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +const details = ():IpluginDetails => ({ + name: 'On Flow Error', + description: `Runs if an error occurs in this specific flow. + Won't run if error occurs in after going to a different flow (unless that flow comes back to this one).`, + style: { + borderColor: 'red', + }, + tags: '', + isStartPlugin: false, + pType: 'onFlowError', + requiresVersion: '2.11.01', + 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, +}; diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/requireReview/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/requireReview/1.0.0/index.ts new file mode 100644 index 0000000..053e0d1 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/requireReview/1.0.0/index.ts @@ -0,0 +1,46 @@ +import { + IpluginDetails, + IpluginInputArgs, + IpluginOutputArgs, +} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces'; + +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +const details = (): IpluginDetails => ({ + name: 'Require Review', + description: `Makes the flow pause. + The file will stay in the staging section on the Tdarr tab until the user clicks the "Reviewed" button. + `, + style: { + borderColor: 'yellow', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faHand', + 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, +}; diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.ts index 1b39283..34167d9 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.ts @@ -15,6 +15,8 @@ const details = ():IpluginDetails => ({ }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts index 4026f12..76c19a2 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts @@ -5,18 +5,72 @@ import { } from '../../../../FlowHelpers/1.0.0/interfaces/interfaces'; /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ -const details = ():IpluginDetails => ({ +const details = (): IpluginDetails => ({ name: 'Send Web Request', description: 'Send Web Request', style: { borderColor: 'green', - opacity: 0.5, }, tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faArrowRight', - inputs: [], + inputs: [ + { + name: 'method', + type: 'string', + defaultValue: 'post', + inputUI: { + type: 'dropdown', + options: [ + 'get', + 'post', + 'put', + 'delete', + ], + }, + tooltip: 'Specify request method', + }, + { + name: 'requestUrl', + type: 'string', + defaultValue: 'http://example.com', + inputUI: { + type: 'text', + }, + tooltip: 'Specify request URL', + }, + { + name: 'requestHeaders', + type: 'string', + defaultValue: `{ + "Content-Type": "application/json" +}`, + inputUI: { + type: 'textarea', + style: { + height: '100px', + }, + }, + tooltip: 'Specify request URL', + }, + { + name: 'requestBody', + type: 'string', + defaultValue: `{ + "test": "test" +}`, + inputUI: { + type: 'textarea', + style: { + height: '100px', + }, + }, + tooltip: 'Specify request body', + }, + ], outputs: [ { number: 1, @@ -26,11 +80,32 @@ const details = ():IpluginDetails => ({ }); // eslint-disable-next-line @typescript-eslint/no-unused-vars -const plugin = (args:IpluginInputArgs):IpluginOutputArgs => { +const plugin = async (args: IpluginInputArgs): Promise => { 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 method = String(args.inputs.method); + const requestUrl = String(args.inputs.requestUrl); + const requestHeaders = JSON.parse(String(args.inputs.requestHeaders)); + const requestBody = JSON.parse(String(args.inputs.requestBody)); + + const requestConfig = { + method, + url: requestUrl, + headers: requestHeaders, + data: requestBody, + }; + + try { + const res = await args.deps.axios(requestConfig); + args.jobLog(`Web request succeeded: Status Code: ${res.status}`); + } catch (err) { + args.jobLog('Web Request Failed'); + args.jobLog(JSON.stringify(err)); + throw new Error('Web Request Failed'); + } + return { outputFileObj: args.inputFileObj, outputNumber: 1, diff --git a/FlowPluginsTs/CommunityFlowPlugins/video/check10Bit/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/video/check10Bit/1.0.0/index.ts index 7791a6a..a1f965d 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/video/check10Bit/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/video/check10Bit/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/video/checkHdr/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/video/checkHdr/1.0.0/index.ts index 68742f7..4cb054b 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/video/checkHdr/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/video/checkHdr/1.0.0/index.ts @@ -6,13 +6,15 @@ import { /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ const details = (): IpluginDetails => ({ - name: 'Check HDR', + name: 'Check HDR Video', description: 'Check if video is HDR', style: { borderColor: 'orange', }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.ts index 45c75d2..082916b 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoBitrate/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = (): IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.ts index 946ecf8..21b8c33 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoCodec/1.0.0/index.ts @@ -13,6 +13,8 @@ const details = ():IpluginDetails => ({ }, tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.ts index cc38a4e..31c537d 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/video/checkVideoResolution/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = ():IpluginDetails => ({ tags: 'video', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: 'faQuestion', inputs: [], diff --git a/FlowPluginsTs/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.ts index 4fbfd44..50f48b3 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.ts @@ -15,6 +15,8 @@ const details = ():IpluginDetails => ({ tags: '', isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', sidebarPosition: -1, icon: '', inputs: [ diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter1.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter1.tsx new file mode 100644 index 0000000..b6425d8 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter1.tsx @@ -0,0 +1,112 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ({ + "name": "Chapter 1: Getting Started", + "description": "Chapter 1: Getting Started", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "_YTuyCZg3", + "position": { + "x": 644.7725474007168, + "y": -59.78556037646227 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "RQzydYbay", + "position": { + "x": 644.8785689715966, + "y": 285.63446752627516 + } + }, + { + "name": "1. Hello and welcome to Tdarr! This is a comment plugin. It doesn't do anything except help explain what's going on in a flow! You can place them anywhere and even link them together.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "df5cejfZP", + "position": { + "x": 774.8672137292031, + "y": -254.93856109034408 + } + }, + { + "name": "2. See! This comment won't do anything. The file from the previous plugin will be passed straight to the next plugin", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "30CajwYP2", + "position": { + "x": 644.6915712919753, + "y": 135.90533672888392 + } + }, + { + "name": "3. This here is an input file plugin and it's where every flow starts. You can only have ONE of these per flow.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "734dA76hg", + "position": { + "x": 444.5704060029551, + "y": -3.4693570957774114 + } + }, + { + "name": "4. That's it for this one, see you in the next chapter!", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "rkYonbPgX", + "position": { + "x": 443.9627448274695, + "y": 332.6480632642012 + } + } + ], + "flowEdges": [ + { + "source": "_YTuyCZg3", + "sourceHandle": "1", + "target": "30CajwYP2", + "targetHandle": null, + "id": "HUBIf10ny" + }, + { + "source": "30CajwYP2", + "sourceHandle": "1", + "target": "RQzydYbay", + "targetHandle": null, + "id": "Gd19X19w1" + }, + { + "source": "df5cejfZP", + "sourceHandle": "1", + "target": "30CajwYP2", + "targetHandle": null, + "id": "0EA92XgvP" + }, + { + "source": "734dA76hg", + "sourceHandle": "1", + "target": "rkYonbPgX", + "targetHandle": null, + "id": "lXbYouTsz" + } + ] +}); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter2.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter2.tsx new file mode 100644 index 0000000..a43320d --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter2.tsx @@ -0,0 +1,191 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ({ + "name": "Chapter 2: The Basics", + "description": "Chapter 2: The Basics", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "p2KPpRjnB", + "position": { + "x": 414.1115477468154, + "y": -216.87055056329626 + } + }, + { + "name": "1. The flow follows the current 'working file' which we can run checks and take actions on.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "ecLynt2i0", + "position": { + "x": 197.4536903827362, + "y": -265.54506622009336 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "jUig7_cRU", + "position": { + "x": 439.02078192278447, + "y": 122.5624161723565 + } + }, + { + "name": "Rename File to have _BigFile", + "sourceRepo": "Community", + "pluginName": "renameFile", + "version": "1.0.0", + "inputsDB": { + "fileRename": "${fileName}_BigFile.${container}" + }, + "id": "2l0pB_oXW", + "position": { + "x": 257.94626475719076, + "y": -21.078426771503985 + } + }, + { + "name": "Check File Size", + "sourceRepo": "Community", + "pluginName": "checkFileSize", + "version": "1.0.0", + "inputsDB": { + "greaterThan": "1", + "lessThan": "10000" + }, + "id": "oDkceuMNL", + "position": { + "x": 413.7748155871969, + "y": -110.90469509295968 + } + }, + { + "name": "Each plugin can only have one input handle but many plugins can link to it. Plugins which only check something are typically orange coloured and have 2 or more outputs.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "HTvMe6FSV", + "position": { + "x": 34.402701566604065, + "y": -184.71873806260285 + } + }, + { + "name": "Once you make an action on a file, in almost all cases the output is the new file. It will be located in your library cache folder.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "3O3ECJdF-", + "position": { + "x": 33.1114649694174, + "y": 113.19141666640903 + } + }, + { + "name": "Typical usage is to replace the original file. So this plugin will replace the original file with the new file.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "qA8hT1mmP", + "position": { + "x": 355.2680532661178, + "y": 199.7482565776084 + } + }, + { + "name": "This flow route doesn't change the file, so the Replace Original File plugin won't do anything and the flow will end succesffully.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "1vBp13H02", + "position": { + "x": 597.7143477707415, + "y": -48.77347490679115 + } + }, + { + "name": "Double click on a plugin to see what each GREEN output does. Ignore the RED outputs for now.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "s-m8qOhJ7", + "position": { + "x": 34.4143205430116, + "y": -5.644569445757767 + } + } + ], + "flowEdges": [ + { + "source": "p2KPpRjnB", + "sourceHandle": "1", + "target": "oDkceuMNL", + "targetHandle": null, + "id": "S8inufSTF" + }, + { + "source": "oDkceuMNL", + "sourceHandle": "1", + "target": "2l0pB_oXW", + "targetHandle": null, + "id": "LFCRv0WUh" + }, + { + "source": "2l0pB_oXW", + "sourceHandle": "1", + "target": "jUig7_cRU", + "targetHandle": null, + "id": "w0K3dKylI" + }, + { + "source": "oDkceuMNL", + "sourceHandle": "2", + "target": "jUig7_cRU", + "targetHandle": null, + "id": "SNdz3urrJ" + }, + { + "source": "ecLynt2i0", + "sourceHandle": "1", + "target": "HTvMe6FSV", + "targetHandle": null, + "id": "7qPHR6V9P" + }, + { + "source": "3O3ECJdF-", + "sourceHandle": "1", + "target": "qA8hT1mmP", + "targetHandle": null, + "id": "GjDmOX_EI" + }, + { + "source": "HTvMe6FSV", + "sourceHandle": "1", + "target": "s-m8qOhJ7", + "targetHandle": null, + "id": "0bPlyyR9Q" + }, + { + "source": "s-m8qOhJ7", + "sourceHandle": "1", + "target": "3O3ECJdF-", + "targetHandle": null, + "id": "Mxxly19vC" + } + ] +}); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter3.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter3.tsx new file mode 100644 index 0000000..39ba7ff --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter3.tsx @@ -0,0 +1,227 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ({ + "name": "Chapter 3: FFmpeg Command", + "description": "Chapter 3: FFmpeg Command", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 648.9333795070321, + "y": -12.529435106431094 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 723.9430232247286, + "y": 534.7914903208923 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 400.42838247161643, + "y": 438.58749864385743 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "The FFmpeg Command plugins dynamically create an FFmpeg command depending on the input file", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "hGnpEHnk5", + "position": { + "x": 254.91444207269103, + "y": -44.61887485112061 + } + }, + { + "name": "You must always begin an FFmpeg command using the 'Begin Command' Plugin", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "saj94a135", + "position": { + "x": 201.288800916537, + "y": 100.94856498487928 + } + }, + { + "name": "In this example, if the video file is already in h265/hevc and mkv container, no action will be taken on the file. To force re-encoding, you can use the forceEncoding option on the Video Encoder plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "sb5MvVryc", + "position": { + "x": 201.61485276007585, + "y": 222.09640730256172 + } + }, + { + "name": "Once the FFmpeg command has been created, you need to execute it using this plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "V0QGN5PKA", + "position": { + "x": 202.61485276007582, + "y": 440.0964073025617 + } + }, + { + "name": "Once again, the output contains the new cache file (or the original file if no action was taken on the file). If there's a new cache file, the 'Replace Original File' plugin will replace the original file, else it will do nothing.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "i4eODNlBc", + "position": { + "x": 536.6148527600759, + "y": 568.0964073025617 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "k9JywvYcK" + }, + { + "source": "hGnpEHnk5", + "sourceHandle": "1", + "target": "saj94a135", + "targetHandle": null, + "id": "dX6DiWPJX" + }, + { + "source": "saj94a135", + "sourceHandle": "1", + "target": "sb5MvVryc", + "targetHandle": null, + "id": "0MAqJvu_e" + }, + { + "source": "sb5MvVryc", + "sourceHandle": "1", + "target": "V0QGN5PKA", + "targetHandle": null, + "id": "57NrKKG2n" + }, + { + "source": "V0QGN5PKA", + "sourceHandle": "1", + "target": "i4eODNlBc", + "targetHandle": null, + "id": "BHwljK8rj" + } + ] +}); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p1.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p1.tsx new file mode 100644 index 0000000..35eb93e --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p1.tsx @@ -0,0 +1,216 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ({ + "name": "Chapter 4: Flow Errors Part 1", + "description": "Chapter 4: Flow Errors Part 1", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 773.1888091521793, + "y": 727.583503313465 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 416.1451226612283, + "y": 433.3485852473201 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "If an unhandled error occurs during the flow, the flow will stop and the file will be moved to the Transcode: Error/Cancelled tab. You can then review the job report to see what went wrong.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "mNaOzfS0Y", + "position": { + "x": 604.5850500985517, + "y": 166.18413013606266 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "mNwoZNlmo", + "position": { + "x": 616.8564543703576, + "y": 578.3209514237449 + } + }, + { + "name": "Compare File Size", + "sourceRepo": "Community", + "pluginName": "compareFileSize", + "version": "1.0.0", + "id": "YGd45fK8d", + "position": { + "x": 518.9335431151374, + "y": 502.8688871164036 + } + }, + { + "name": "You can also force a flow to fail which can be useful in certain situation such as here.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "9QkIvxxxx", + "position": { + "x": 678.3646507954192, + "y": 429.7476734555484 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "YGd45fK8d", + "targetHandle": null, + "id": "bldP67hmm" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "fw9Le5zqo" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "2", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "wd7SmimpM" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "3", + "target": "mNwoZNlmo", + "targetHandle": null, + "id": "RmpqCf-Vh" + }, + { + "source": "mNaOzfS0Y", + "sourceHandle": "1", + "target": "9QkIvxxxx", + "targetHandle": null, + "id": "4Yez6rEN2" + } + ] +}); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p2.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p2.tsx new file mode 100644 index 0000000..2fbf8dd --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p2.tsx @@ -0,0 +1,310 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ({ + "name": "Chapter 4: Flow Errors Part 2 - On Flow Error", + "description": "Chapter 4: Flow Errors Part 2 - On Flow Error", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 773.1888091521793, + "y": 727.583503313465 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 416.1451226612283, + "y": 433.3485852473201 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "mNwoZNlmo", + "position": { + "x": 616.8564543703576, + "y": 578.3209514237449 + } + }, + { + "name": "Compare File Size", + "sourceRepo": "Community", + "pluginName": "compareFileSize", + "version": "1.0.0", + "id": "YGd45fK8d", + "position": { + "x": 518.9335431151374, + "y": 502.8688871164036 + } + }, + { + "name": "On Flow Error", + "sourceRepo": "Community", + "pluginName": "onFlowError", + "version": "1.0.0", + "id": "yMWso-uZa", + "position": { + "x": 922.4197900595414, + "y": 161.088098623682 + } + }, + { + "name": "1. To handle an error that occurs anywhere in this specifc flow, you can use the 'On Flow Error' plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "jpEn9FVQX", + "position": { + "x": 1018.5785464566798, + "y": 65.98583847747655 + } + }, + { + "name": "All unhandled errors and the 'Fail Flow' plugin IN THIS FLOW will trigger the 'On Flow Error' plugin IN THIS FLOW", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "vRFTPo0p5", + "position": { + "x": 698.3866844766682, + "y": 451.2472106052397 + } + }, + { + "name": "If another error occurs in the 'On Flow Error' flow then the flow will end and the file will be moved to the transcode 'Transcode: Error/Cancelled' tab. The 'On Flow Error' plugin will NOT be run again (to prevent infinite error loops)", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "fAQouEkEY", + "position": { + "x": 1183.421069816697, + "y": 228.19157008625297 + } + }, + { + "name": "Send Web Request", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "42P9lb0B3", + "position": { + "x": 897.7260729664589, + "y": 469.1243455181426 + } + }, + { + "name": "Even if all the plugins in the error flow complete successfully, the file will still be moved to the 'Transcode: Error/Cancelled' tab at the end.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "Ke1S57we6", + "position": { + "x": 1006.3188415680227, + "y": 541.3784972055968 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "yj3grm5d8", + "position": { + "x": 1047.7090907308577, + "y": 394.7331214427515 + } + }, + { + "name": "Check File Exists", + "sourceRepo": "Community", + "pluginName": "checkFileExists", + "version": "1.0.0", + "id": "S_rVuKn8S", + "position": { + "x": 926.2665476107438, + "y": 277.7066707997331 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "YGd45fK8d", + "targetHandle": null, + "id": "bldP67hmm" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "fw9Le5zqo" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "2", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "wd7SmimpM" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "3", + "target": "mNwoZNlmo", + "targetHandle": null, + "id": "RmpqCf-Vh" + }, + { + "source": "jpEn9FVQX", + "sourceHandle": "1", + "target": "fAQouEkEY", + "targetHandle": null, + "id": "5mv1ls7Ib" + }, + { + "source": "fAQouEkEY", + "sourceHandle": "1", + "target": "Ke1S57we6", + "targetHandle": null, + "id": "_VEvhMOtk" + }, + { + "source": "yMWso-uZa", + "sourceHandle": "1", + "target": "S_rVuKn8S", + "targetHandle": null, + "id": "yweCdlSWM" + }, + { + "source": "S_rVuKn8S", + "sourceHandle": "1", + "target": "yj3grm5d8", + "targetHandle": null, + "id": "xI3eh7wZp" + }, + { + "source": "S_rVuKn8S", + "sourceHandle": "2", + "target": "42P9lb0B3", + "targetHandle": null, + "id": "V-qf6QBC4" + } + ] +}); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p3.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p3.tsx new file mode 100644 index 0000000..dbf9529 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter4p3.tsx @@ -0,0 +1,319 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ( + { + "name": "Chapter 4: Flow Errors Part 3 - Plugin-specific Error Handling", + "description": "Chapter 4: Flow Errors Part 3 - Plugin-specific Error Handling", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 541.9238836009351, + "y": 32.863009312154745 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "QdLvoNjuG", + "position": { + "x": 773.1888091521793, + "y": 727.583503313465 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "-kY9osnGE", + "position": { + "x": 399.6705241883612, + "y": 143.02276817432977 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "pmoPx8W0W", + "position": { + "x": 399.8062875388412, + "y": 417.9708580733087 + } + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "-DEIJA3Pf", + "position": { + "x": 401.1862407548717, + "y": 335.51877212115033 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "U0fVPXskr", + "position": { + "x": 400.1862407548716, + "y": 249.12292783005773 + } + }, + { + "name": "Fail Flow", + "sourceRepo": "Community", + "pluginName": "failFlow", + "version": "1.0.0", + "id": "mNwoZNlmo", + "position": { + "x": 616.8564543703576, + "y": 578.3209514237449 + } + }, + { + "name": "Compare File Size", + "sourceRepo": "Community", + "pluginName": "compareFileSize", + "version": "1.0.0", + "id": "YGd45fK8d", + "position": { + "x": 518.9335431151374, + "y": 502.8688871164036 + } + }, + { + "name": "On Flow Error", + "sourceRepo": "Community", + "pluginName": "onFlowError", + "version": "1.0.0", + "id": "yMWso-uZa", + "position": { + "x": 1060.1712089610803, + "y": 145.28055874973487 + } + }, + { + "name": "Send Web Request", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "Bc2bZtgBc", + "position": { + "x": 922.4677516191077, + "y": 279.351803016885 + } + }, + { + "name": "Tdarr also offers plugin-specific error handling using the RED connection on each plugin. The flow path will be triggered if an unhandled error occurs within that specific plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "H__edbTLw", + "position": { + "x": 767.7320724785685, + "y": -230.81328720265796 + } + }, + { + "name": "Send Web Request: Ping Melissa to check network storage", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "X9NEJCEgk", + "position": { + "x": 880.7836232681229, + "y": -39.676791653194755 + } + }, + { + "name": "Send Web Request: Ping Romesh to check transcode log", + "sourceRepo": "Community", + "pluginName": "webRequest", + "version": "1.0.0", + "id": "BO0c5TlKq", + "position": { + "x": 661.6510110384603, + "y": 300.5554220718082 + } + }, + { + "name": "This allows very specific error flows, for example pinging different team members for different errors.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "zTVwtbuxI", + "position": { + "x": 657.8440331872728, + "y": 166.67570418496692 + } + }, + { + "name": "The plugin-specifc error handling will NOT trigger the 'On Flow Error' plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "N9E-u8l0o", + "position": { + "x": 1170.7519669401188, + "y": 56.50523025141092 + } + }, + { + "name": "But you can still join the plugin-specific error handling flow onto the rest of the 'On Flow Error' Flow", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "AOi3vLobO", + "position": { + "x": 1125.9768689675689, + "y": 284.4868129833375 + } + } + ], + "flowEdges": [ + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "ldiZljXp2" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "-kY9osnGE", + "sourceHandle": "1", + "target": "U0fVPXskr", + "targetHandle": null, + "id": "wuqNLcC1D" + }, + { + "source": "U0fVPXskr", + "sourceHandle": "1", + "target": "-DEIJA3Pf", + "targetHandle": null, + "id": "Coq5pIs3c" + }, + { + "source": "-DEIJA3Pf", + "sourceHandle": "1", + "target": "pmoPx8W0W", + "targetHandle": null, + "id": "fGjbMXOng" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "-kY9osnGE", + "targetHandle": null, + "id": "E5NHstmdF" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "1", + "target": "YGd45fK8d", + "targetHandle": null, + "id": "bldP67hmm" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "1", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "fw9Le5zqo" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "2", + "target": "QdLvoNjuG", + "targetHandle": null, + "id": "wd7SmimpM" + }, + { + "source": "YGd45fK8d", + "sourceHandle": "3", + "target": "mNwoZNlmo", + "targetHandle": null, + "id": "RmpqCf-Vh" + }, + { + "source": "yMWso-uZa", + "sourceHandle": "1", + "target": "Bc2bZtgBc", + "targetHandle": null, + "id": "7k8P1VYv6" + }, + { + "source": "gtZCtmY-l", + "sourceHandle": "err1", + "target": "X9NEJCEgk", + "targetHandle": null, + "id": "9rhuR5eSI" + }, + { + "source": "pmoPx8W0W", + "sourceHandle": "err1", + "target": "BO0c5TlKq", + "targetHandle": null, + "id": "ttZgLtKF3" + }, + { + "source": "H__edbTLw", + "sourceHandle": "1", + "target": "zTVwtbuxI", + "targetHandle": null, + "id": "5sjNNMXAK" + }, + { + "source": "X9NEJCEgk", + "sourceHandle": "1", + "target": "Bc2bZtgBc", + "targetHandle": null, + "id": "OW-yqRQH5" + }, + { + "source": "N9E-u8l0o", + "sourceHandle": "1", + "target": "AOi3vLobO", + "targetHandle": null, + "id": "K440_LQm_" + } + ] + } +); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter5.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter5.tsx new file mode 100644 index 0000000..4016acd --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter5.tsx @@ -0,0 +1,159 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ({ + "name": "Chapter 5: Go To Flow", + "description": "Chapter 5: Go To Flow", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "On Flow Error", + "sourceRepo": "Community", + "pluginName": "onFlowError", + "version": "1.0.0", + "id": "yMWso-uZa", + "position": { + "x": 1122.33024332169, + "y": 226.4434391132305 + } + }, + { + "name": "You can use the Go To Flow to go to a different flow. The working file will be passed to that flow and will continue as normal. Double click on the plugin to select the flow you'd like to go to.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "rHV28Kbkv", + "position": { + "x": 462.0014512264263, + "y": 65.78412788449464 + } + }, + { + "name": "Go To Flow", + "sourceRepo": "Community", + "pluginName": "goToFlow", + "version": "1.0.0", + "id": "gOrbropah", + "position": { + "x": 572.7308895655424, + "y": 234.58707695358294 + } + }, + { + "name": "By design, if an error happens in a different flow, this 'On Flow Error' will not be called. Across all flows, the 'On Flow Error' plugin will only be called ONCE in the flow that the FIRST error occurred in. 'On Flow Error' plugins in flows before or after the current flow will not be called, even if an error occurs in them at a later time.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "7azuiVML9", + "position": { + "x": 1310.2464269220861, + "y": 134.70796523124582 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "ELn0kcc-1", + "position": { + "x": 778.4079905179452, + "y": 428.7308825254772 + } + }, + { + "name": "Go To Flow", + "sourceRepo": "Community", + "pluginName": "goToFlow", + "version": "1.0.0", + "id": "j5dOGi9zz", + "position": { + "x": 1122.484636036451, + "y": 397.97542817745443 + } + }, + { + "name": "After an error has occured you can even go to a different flow! So you can create a dedicated Error flow and go to it each time an error occurs within any of your flows! Useful for notifications etc.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "EpMxr2UuE", + "position": { + "x": 1205.7688307851763, + "y": 479.4625484620842 + } + } + ], + "flowEdges": [ + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "gOrbropah", + "targetHandle": null, + "id": "qVWE7SWt2" + }, + { + "source": "rHV28Kbkv", + "sourceHandle": "1", + "target": "7azuiVML9", + "targetHandle": null, + "id": "i0OUf3hAM" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "ELn0kcc-1", + "targetHandle": null, + "id": "hTaDcPw24" + }, + { + "source": "yMWso-uZa", + "sourceHandle": "1", + "target": "j5dOGi9zz", + "targetHandle": null, + "id": "6Hrh7vbfW" + }, + { + "source": "7azuiVML9", + "sourceHandle": "1", + "target": "EpMxr2UuE", + "targetHandle": null, + "id": "S_36mCXnL" + } + ] +}); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter6.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter6.tsx new file mode 100644 index 0000000..591dff5 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter6.tsx @@ -0,0 +1,270 @@ +/* eslint-disable no-template-curly-in-string */ +/* eslint-disable import/prefer-default-export */ + +import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; + +const details = () :IflowTemplate => ({ + "name": "Chapter 6: The Review System", + "description": "Chapter 6: The Review System", + "tags": "", + "flowPlugins": [ + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "gtZCtmY-l", + "position": { + "x": 648.6536861377089, + "y": -82.45578042880155 + } + }, + { + "name": "Check Video Codec", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "PpLF-5jxp", + "position": { + "x": 752.4065242952165, + "y": 51.12406033129332 + } + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "R0gX9B20d", + "position": { + "x": 879.7236115475249, + "y": 934.782797377857 + } + }, + { + "name": "Begin Command", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "U6N3AQubH", + "position": { + "x": 546.8854528742303, + "y": 174.54090453410515 + } + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "Lv-zb-iTw", + "position": { + "x": 543.172691292081, + "y": 368.6158072160807 + } + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "1pOFUCuQR", + "position": { + "x": 545.0642491154337, + "y": 274.70711126791645 + } + }, + { + "name": "Require Review", + "sourceRepo": "Community", + "pluginName": "requireReview", + "version": "1.0.0", + "id": "oHpu2fZOi", + "position": { + "x": 631.7959812272709, + "y": 459.542392214296 + } + }, + { + "name": "Run Classic Transcode Plugin: Add Audio Stream", + "sourceRepo": "Community", + "pluginName": "runClassicTranscodePlugin", + "version": "1.0.0", + "inputsDB": { + "pluginSourceId": "Community:Tdarr_Plugin_00td_action_add_audio_stream_codec" + }, + "id": "RZX5jIP5I", + "position": { + "x": 632.2402074212371, + "y": 545.8356807635909 + } + }, + { + "name": "Run Classic Transcode Plugin", + "sourceRepo": "Community", + "pluginName": "runClassicTranscodePlugin", + "version": "1.0.0", + "inputsDB": { + "pluginSourceId": "Community:Tdarr_Plugin_00td_action_remove_audio_by_channel_count", + "channelCounts": "8" + }, + "id": "3zj5puRQ1", + "position": { + "x": 696.5390735282473, + "y": 758.7339551203235 + } + }, + { + "name": "Require Review", + "sourceRepo": "Community", + "pluginName": "requireReview", + "version": "1.0.0", + "id": "q8Pz_3HGh", + "position": { + "x": 634.7388490591334, + "y": 648.8668893974542 + } + }, + { + "name": "You can pause a flow by using the 'Require Review' plugin. This will cause the file to stay in the staging section on the Tdarr tab until the 'Reviewed' button is pressed. This allows you to check the last completed cache file.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "YPyMAbZ76", + "position": { + "x": 856.2716462414401, + "y": 343.06736953610425 + } + }, + { + "name": "Once the file has been reviewed, the flow will continue from the next plugin.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "REt4UEEGD", + "position": { + "x": 856.7260936183322, + "y": 531.8099095812979 + } + }, + { + "name": "You can 'Require Review' as much as you like!", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "UhuSLjA8g", + "position": { + "x": 857.7070495622867, + "y": 709.362935437006 + } + }, + { + "name": "Require Review", + "sourceRepo": "Community", + "pluginName": "requireReview", + "version": "1.0.0", + "id": "8IU0bhEJs", + "position": { + "x": 780.2115299899054, + "y": 844.7348557026837 + } + } + ], + "flowEdges": [ + { + "source": "gtZCtmY-l", + "sourceHandle": "1", + "target": "PpLF-5jxp", + "targetHandle": null, + "id": "Cs5aBSUks" + }, + { + "source": "U6N3AQubH", + "sourceHandle": "1", + "target": "1pOFUCuQR", + "targetHandle": null, + "id": "RdnvWmv0o" + }, + { + "source": "1pOFUCuQR", + "sourceHandle": "1", + "target": "Lv-zb-iTw", + "targetHandle": null, + "id": "p-VkIS6DK" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "2", + "target": "U6N3AQubH", + "targetHandle": null, + "id": "x_vWzShYB" + }, + { + "source": "PpLF-5jxp", + "sourceHandle": "1", + "target": "R0gX9B20d", + "targetHandle": null, + "id": "CtIsUppTB" + }, + { + "source": "Lv-zb-iTw", + "sourceHandle": "1", + "target": "oHpu2fZOi", + "targetHandle": null, + "id": "d9tDIjd1L" + }, + { + "source": "oHpu2fZOi", + "sourceHandle": "1", + "target": "RZX5jIP5I", + "targetHandle": null, + "id": "kFP4WRftx" + }, + { + "source": "RZX5jIP5I", + "sourceHandle": "1", + "target": "q8Pz_3HGh", + "targetHandle": null, + "id": "nqbQJ9wUz" + }, + { + "source": "q8Pz_3HGh", + "sourceHandle": "1", + "target": "3zj5puRQ1", + "targetHandle": null, + "id": "Vx60urLP7" + }, + { + "source": "YPyMAbZ76", + "sourceHandle": "1", + "target": "REt4UEEGD", + "targetHandle": null, + "id": "B85VWeRRu" + }, + { + "source": "REt4UEEGD", + "sourceHandle": "1", + "target": "UhuSLjA8g", + "targetHandle": null, + "id": "wk44u1THD" + }, + { + "source": "3zj5puRQ1", + "sourceHandle": "1", + "target": "8IU0bhEJs", + "targetHandle": null, + "id": "9Q4vfDFmI" + }, + { + "source": "8IU0bhEJs", + "sourceHandle": "1", + "target": "R0gX9B20d", + "targetHandle": null, + "id": "8wXVHwiDC" + } + ] +}); + +export { + details, +}; diff --git a/FlowPluginsTs/CommunityFlowTemplates/video/basicVideo.ts b/FlowPluginsTs/CommunityFlowTemplates/video/basicVideo.ts index 3c69261..3a146d0 100644 --- a/FlowPluginsTs/CommunityFlowTemplates/video/basicVideo.ts +++ b/FlowPluginsTs/CommunityFlowTemplates/video/basicVideo.ts @@ -6,7 +6,7 @@ import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; const details = () :IflowTemplate => ({ name: 'Basic HEVC Video Flow', description: 'Basic HEVC Video Flow', - tags: 'video', + tags: '', flowPlugins: [ { name: 'Input File', @@ -93,8 +93,6 @@ const details = () :IflowTemplate => ({ target: '91b7IrsEc', targetHandle: null, id: 'HhF4rw2DZ', - animated: true, - type: 'smoothstep', }, { source: '91b7IrsEc', @@ -102,8 +100,6 @@ const details = () :IflowTemplate => ({ target: '4Swd6qzvc', targetHandle: null, id: 'jJizyFUcr', - animated: true, - type: 'smoothstep', }, { source: '4Swd6qzvc', @@ -111,8 +107,6 @@ const details = () :IflowTemplate => ({ target: '8B_6pRd_U', targetHandle: null, id: '3Df7Xoy93', - animated: true, - type: 'smoothstep', }, { source: '450g167D8', @@ -120,8 +114,6 @@ const details = () :IflowTemplate => ({ target: '4fkfOyR3l', targetHandle: null, id: 'rE5Dsh9KM', - animated: true, - type: 'smoothstep', }, { source: '91b7IrsEc', @@ -129,8 +121,6 @@ const details = () :IflowTemplate => ({ target: '4fkfOyR3l', targetHandle: null, id: 'W2nVG7ts5', - animated: true, - type: 'smoothstep', }, { source: '8B_6pRd_U', @@ -138,8 +128,6 @@ const details = () :IflowTemplate => ({ target: 'TtKXi3Q7h', targetHandle: null, id: 'epqtLsPuG', - animated: true, - type: 'smoothstep', }, { source: 'TtKXi3Q7h', @@ -147,8 +135,6 @@ const details = () :IflowTemplate => ({ target: '450g167D8', targetHandle: null, id: 'ljOeP0cAZ', - animated: true, - type: 'smoothstep', }, ], }); diff --git a/FlowPluginsTs/CommunityFlowTemplates/video/lowResolutionCopies.ts b/FlowPluginsTs/CommunityFlowTemplates/video/lowResolutionCopies.ts index 3c9bfbc..d9ddbcf 100644 --- a/FlowPluginsTs/CommunityFlowTemplates/video/lowResolutionCopies.ts +++ b/FlowPluginsTs/CommunityFlowTemplates/video/lowResolutionCopies.ts @@ -6,7 +6,7 @@ import { IflowTemplate } from '../../FlowHelpers/1.0.0/interfaces/interfaces'; const details = () :IflowTemplate => ({ name: 'Create Low Resolution Video Copies', description: 'Create Low Resolution Video Copies', - tags: 'video', + tags: '', flowPlugins: [ { name: 'Input File', @@ -77,14 +77,14 @@ const details = () :IflowTemplate => ({ sourceRepo: 'Community', pluginName: 'checkFileNameIncludes', version: '1.0.0', + inputsDB: { + terms: '_720p,_480p', + }, id: 'wRipuaq4G', position: { x: 763.9976994431687, y: 198.97576654117708, }, - inputsDB: { - terms: '_720p,_480p', - }, }, { name: 'Rename File _720p', @@ -138,14 +138,14 @@ const details = () :IflowTemplate => ({ sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVideoEncoder', version: '1.0.0', + inputsDB: { + forceEncoding: 'true', + }, id: 'wcmBN2N02', position: { x: 1171.0819612214827, y: 257.19366435734827, }, - inputsDB: { - forceEncoding: 'true', - }, }, { name: 'Execute', @@ -185,42 +185,42 @@ const details = () :IflowTemplate => ({ sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVdeoResolution', version: '1.0.0', + inputsDB: { + targetResolution: '480p', + }, id: 'dzFEwECXB', position: { x: 1396.1961096759603, y: 309.9727302535869, }, - inputsDB: { - targetResolution: '480p', - }, }, { name: 'Set Video Encoder', sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVideoEncoder', version: '1.0.0', + inputsDB: { + forceEncoding: 'true', + }, id: '_EynbvgSl', position: { x: 1396.1961096759603, y: 214.35898180146438, }, - inputsDB: { - forceEncoding: 'true', - }, }, { name: 'Set Video Resolution 720p', sourceRepo: 'Community', pluginName: 'ffmpegCommandSetVdeoResolution', version: '1.0.0', + inputsDB: { + targetResolution: '720p', + }, id: 'CMm7MlE7g', position: { x: 1169.6624226114702, y: 336.82482287402803, }, - inputsDB: { - targetResolution: '720p', - }, }, ], flowEdges: [ @@ -230,8 +230,6 @@ const details = () :IflowTemplate => ({ target: 'wRipuaq4G', targetHandle: null, id: 'IE_oGhETB', - animated: true, - type: 'smoothstep', }, { source: 'wRipuaq4G', @@ -239,8 +237,6 @@ const details = () :IflowTemplate => ({ target: '1pj9oSg5G', targetHandle: null, id: 'QR6uGNUhE', - animated: true, - type: 'smoothstep', }, { source: 'wRipuaq4G', @@ -248,8 +244,6 @@ const details = () :IflowTemplate => ({ target: 'VyNRD3YjM', targetHandle: null, id: 'sh_kstv0D', - animated: true, - type: 'smoothstep', }, { source: 'uDC6XT1Jy', @@ -257,8 +251,6 @@ const details = () :IflowTemplate => ({ target: '1pj9oSg5G', targetHandle: null, id: 'G5jl85ijr', - animated: true, - type: 'smoothstep', }, { source: 'VyNRD3YjM', @@ -266,8 +258,6 @@ const details = () :IflowTemplate => ({ target: 'uDC6XT1Jy', targetHandle: null, id: 'DmUL9DS8q', - animated: true, - type: 'smoothstep', }, { source: 'VpCD-7LZJ', @@ -275,8 +265,6 @@ const details = () :IflowTemplate => ({ target: 'mFRK-Z9WC', targetHandle: null, id: 'ap4YXAxy3', - animated: true, - type: 'smoothstep', }, { source: 'cTKbaB8nT', @@ -284,8 +272,6 @@ const details = () :IflowTemplate => ({ target: 'mFRK-Z9WC', targetHandle: null, id: 'i9fr5J5pL', - animated: true, - type: 'smoothstep', }, { source: 'mFRK-Z9WC', @@ -293,8 +279,6 @@ const details = () :IflowTemplate => ({ target: 'oD4u5PY9T', targetHandle: null, id: 'KUw59S_Zl', - animated: true, - type: 'smoothstep', }, { source: 'oD4u5PY9T', @@ -302,8 +286,6 @@ const details = () :IflowTemplate => ({ target: 'wRipuaq4G', targetHandle: null, id: 'HlM4E6eV8', - animated: true, - type: 'smoothstep', }, { source: 'tmUd79-Fb', @@ -311,9 +293,6 @@ const details = () :IflowTemplate => ({ target: 'cTKbaB8nT', targetHandle: null, id: 'iJLmmoDLp', - animated: true, - type: 'smoothstep', - selected: false, }, { source: 'uDC6XT1Jy', @@ -321,8 +300,6 @@ const details = () :IflowTemplate => ({ target: 'FSG9AOX5c', targetHandle: null, id: 'iRTrU8utq', - animated: true, - type: 'smoothstep', }, { source: 'dzFEwECXB', @@ -330,8 +307,6 @@ const details = () :IflowTemplate => ({ target: 'gbY0xIJnB', targetHandle: null, id: 'A5cyCu_kx', - animated: true, - type: 'smoothstep', }, { source: 'Jn6dcKd3i', @@ -339,8 +314,6 @@ const details = () :IflowTemplate => ({ target: '_EynbvgSl', targetHandle: null, id: '1HajidLz-', - animated: true, - type: 'smoothstep', }, { source: '_EynbvgSl', @@ -348,8 +321,6 @@ const details = () :IflowTemplate => ({ target: 'dzFEwECXB', targetHandle: null, id: 'vEESYeSsL', - animated: true, - type: 'smoothstep', }, { source: 'VyNRD3YjM', @@ -357,8 +328,6 @@ const details = () :IflowTemplate => ({ target: 'Jn6dcKd3i', targetHandle: null, id: 'q8zd_qCSU', - animated: true, - type: 'smoothstep', }, { source: 'gbY0xIJnB', @@ -366,8 +335,6 @@ const details = () :IflowTemplate => ({ target: 'VpCD-7LZJ', targetHandle: null, id: 'leYMQdxHw', - animated: true, - type: 'smoothstep', }, { source: 'FSG9AOX5c', @@ -375,8 +342,6 @@ const details = () :IflowTemplate => ({ target: 'wcmBN2N02', targetHandle: null, id: 'Dl5MCSqQM', - animated: true, - type: 'smoothstep', }, { source: 'wcmBN2N02', @@ -384,8 +349,6 @@ const details = () :IflowTemplate => ({ target: 'CMm7MlE7g', targetHandle: null, id: 'GIpbjomC8', - animated: true, - type: 'smoothstep', }, { source: 'CMm7MlE7g', @@ -393,8 +356,6 @@ const details = () :IflowTemplate => ({ target: 'tmUd79-Fb', targetHandle: null, id: 'AxR9R10MY', - animated: true, - type: 'smoothstep', }, ], }); diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts index c4e484a..6af537d 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts @@ -24,13 +24,22 @@ export interface IpluginInputs { export interface IpluginDetails { name: string, + nameUI?:{ + type: 'text' | 'textarea', + style?:Record, + } description: string, style: { borderColor: string, opacity?: number, + borderRadius?: number | string, + width?: number | string, + height?: number | string, + backgroundColor?: string, }, tags: string, isStartPlugin: boolean, + pType: 'start' | 'onFlowError' | '', sidebarPosition: number, icon: string, inputs: IpluginInputs[], @@ -39,6 +48,7 @@ export interface IpluginDetails { number: number, tooltip: string, }[], + requiresVersion: string, } export interface Ilog { @@ -120,7 +130,9 @@ export interface IpluginInputArgs { // eslint-disable-next-line @typescript-eslint/no-explicit-any gracefulfs: any, // eslint-disable-next-line @typescript-eslint/no-explicit-any - mvdir: any + mvdir: any, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + axios: any, }, }