From 3847a970fe6637bcc9f541af2015577af6972f50 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Thu, 17 Oct 2024 01:36:36 +0100 Subject: [PATCH 01/34] Chapter 8: Unmapped Nodes --- .../tutorials/chapter8.tsx | 284 ++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter8.tsx diff --git a/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter8.tsx b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter8.tsx new file mode 100644 index 0000000..f403790 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowTemplates/tutorials/chapter8.tsx @@ -0,0 +1,284 @@ +/* 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 8: Unmapped Nodes", + "description": "Chapter 8: Unmapped Nodes", + "tags": "", + "flowPlugins": [ + { + "name": "Tags: Worker Type - Mapped Node", + "sourceRepo": "Community", + "pluginName": "tagsWorkerType", + "version": "1.0.0", + "id": "XDkUDTqXV", + "position": { + "x": 618.728206498488, + "y": 797.6991616678526 + }, + "fpEnabled": true, + "inputsDB": { + "requiredNodeTags": "mapped" + } + }, + { + "name": "Tags: Worker Type - Unmapped Node", + "sourceRepo": "Community", + "pluginName": "tagsWorkerType", + "version": "1.0.0", + "id": "Gm1kh8K5w", + "position": { + "x": 487.23666063579026, + "y": 281.79774016757386 + }, + "fpEnabled": true, + "inputsDB": { + "requiredNodeTags": "unmapped" + } + }, + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "pE6rU7gkW", + "position": { + "x": 788.5712895368422, + "y": 45.83576905176477 + }, + "fpEnabled": true + }, + { + "name": "Check if hevc", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "91b7IrsEc", + "position": { + "x": 788.2207108267078, + "y": 203.7781028159269 + }, + "fpEnabled": true + }, + { + "name": "Start", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "4Swd6qzvc", + "position": { + "x": 489.25252076795084, + "y": 370.51229288382495 + }, + "fpEnabled": true + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "450g167D8", + "position": { + "x": 488.72295602997406, + "y": 699.5034828311435 + }, + "fpEnabled": true + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "8B_6pRd_U", + "position": { + "x": 488.5270135748424, + "y": 477.83202026423606 + }, + "fpEnabled": true + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "4fkfOyR3l", + "position": { + "x": 797.2573001129032, + "y": 882.7619863463507 + }, + "fpEnabled": true + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "TtKXi3Q7h", + "position": { + "x": 488.21110165973323, + "y": 570.3064821931456 + }, + "fpEnabled": true + }, + { + "name": "Tags: Worker Type - Mapped Node", + "sourceRepo": "Community", + "pluginName": "tagsWorkerType", + "version": "1.0.0", + "id": "7Y_fzVfGm", + "position": { + "x": 788.7823658666633, + "y": 127.15363454994434 + }, + "fpEnabled": true, + "inputsDB": { + "requiredNodeTags": "mapped" + } + }, + { + "name": "We will check the file codec on a mapped node. This way bandwidth and time is saved as we don't need to unnecessarily send the whole file to the unmapped node.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "6oOV2PLSr", + "position": { + "x": 958.0256289687773, + "y": 129.22000506355067 + }, + "fpEnabled": true + }, + { + "name": "If the codec is not what we want, we'll require the next transcoding steps to run on an unmapped node. The unmapped node will automatically download the file from the server.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "j343VFewY", + "position": { + "x": 316.4293037925603, + "y": 290.6548883625747 + }, + "fpEnabled": true + }, + { + "name": "After the transcode, we'll run the original file replacement on a mapped node which has access to the server file system. The mapped node will automatically download the working file from the unmapped node.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "hVhthld87", + "position": { + "x": 364.852600714643, + "y": 769.3367928955186 + }, + "fpEnabled": true + }, + { + "name": "Before starting, ensure that in the Node options panel on the Tdarr tab, the mapped node has node tag 'mapped' and the umapped node has node tag 'umapped'.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "9sd__MisF", + "position": { + "x": 791.5682800167409, + "y": -93.09360376469954 + }, + "fpEnabled": true + }, + { + "name": "Unmapped nodes are a new node type for Tdarr Pro members on 2.27.01 and above. More info: https://docs.tdarr.io/docs/nodes/nodes#unmapped", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "EILF-RWh2", + "position": { + "x": 791.4236829857584, + "y": -209.23734619332546 + }, + "fpEnabled": true + } + ], + "flowEdges": [ + { + "source": "4Swd6qzvc", + "sourceHandle": "1", + "target": "8B_6pRd_U", + "targetHandle": null, + "id": "3Df7Xoy93" + }, + { + "source": "8B_6pRd_U", + "sourceHandle": "1", + "target": "TtKXi3Q7h", + "targetHandle": null, + "id": "epqtLsPuG" + }, + { + "source": "TtKXi3Q7h", + "sourceHandle": "1", + "target": "450g167D8", + "targetHandle": null, + "id": "ljOeP0cAZ" + }, + { + "source": "450g167D8", + "sourceHandle": "1", + "target": "XDkUDTqXV", + "targetHandle": null, + "id": "3412q1wK2" + }, + { + "source": "XDkUDTqXV", + "sourceHandle": "1", + "target": "4fkfOyR3l", + "targetHandle": null, + "id": "3jQP_egvG" + }, + { + "source": "pE6rU7gkW", + "sourceHandle": "1", + "target": "7Y_fzVfGm", + "targetHandle": null, + "id": "XHRuig1Dp" + }, + { + "source": "7Y_fzVfGm", + "sourceHandle": "1", + "target": "91b7IrsEc", + "targetHandle": null, + "id": "_CJ9H5I_X" + }, + { + "source": "91b7IrsEc", + "sourceHandle": "1", + "target": "4fkfOyR3l", + "targetHandle": null, + "id": "2x5mRYwOU" + }, + { + "source": "91b7IrsEc", + "sourceHandle": "2", + "target": "Gm1kh8K5w", + "targetHandle": null, + "id": "8eBsa60Xp" + }, + { + "source": "Gm1kh8K5w", + "sourceHandle": "1", + "target": "4Swd6qzvc", + "targetHandle": null, + "id": "IryDiBCVX" + }, + { + "source": "EILF-RWh2", + "sourceHandle": "1", + "target": "9sd__MisF", + "targetHandle": null, + "id": "IPiPj8zhv" + } + ] +}); + +export { + details, +}; \ No newline at end of file From bc6dd1d35e7c02d6ab6bb3e70779eda68ab48b7b Mon Sep 17 00:00:00 2001 From: HaveAGitGat Date: Thu, 17 Oct 2024 00:38:54 +0000 Subject: [PATCH 02/34] Apply auto-build changes --- .../audio/normalizeAudio/1.0.0/index.js | 4 +- .../basic/basicVideoOrAudio/1.0.0/index.js | 4 +- .../runClassicFilterPlugin/1.0.0/index.js | 4 +- .../runClassicTranscodePlugin/1.0.0/index.js | 4 +- .../runClassicTranscodePlugin/2.0.0/index.js | 4 +- .../ffmpegCommandExecute/1.0.0/index.js | 4 +- .../1.0.0/index.js | 4 +- .../file/checkFileExists/1.0.0/index.js | 4 +- .../file/copyMoveFolderContent/1.0.0/index.js | 4 +- .../file/copyToDirectory/1.0.0/index.js | 4 +- .../file/copyToWorkDirectory/1.0.0/index.js | 4 +- .../file/deleteFile/1.0.0/index.js | 4 +- .../file/moveToDirectory/2.0.0/index.js | 4 +- .../moveToOriginalDirectory/1.0.0/index.js | 4 +- .../file/renameFile/1.0.0/index.js | 4 +- .../file/replaceOriginalFile/1.0.0/index.js | 4 +- .../handbrakeCustomArguments/1.0.0/index.js | 4 +- .../handbrakeCustomArguments/2.0.0/index.js | 4 +- .../input/inputFile/1.0.0/index.js | 4 +- .../1.0.0/index.js | 4 +- .../tools/apprise/1.0.0/index.js | 4 +- .../checkNodeHardwareEncoder/1.0.0/index.js | 4 +- .../tools/notifyRadarrOrSonarr/1.0.0/index.js | 4 +- .../tools/notifyRadarrOrSonarr/2.0.0/index.js | 4 +- .../tools/pauseUnpauseAllNodes/1.0.0/index.js | 4 +- .../tools/runCli/1.0.0/index.js | 4 +- .../tools/runMkvPropEdit/1.0.0/index.js | 4 +- .../tools/waitTimeout/1.0.0/index.js | 4 +- .../tools/webRequest/1.0.0/index.js | 4 +- .../video/runHealthCheck/1.0.0/index.js | 4 +- .../video/transcodeVideo/1.0.0/index.js | 4 +- .../tutorials/chapter8.js | 281 ++++++++++++++++++ .../FlowHelpers/1.0.0/classicPlugins.js | 4 +- FlowPlugins/FlowHelpers/1.0.0/cliUtils.js | 4 +- .../FlowHelpers/1.0.0/fileMoveOrCopy.js | 4 +- FlowPlugins/FlowHelpers/1.0.0/fileUtils.js | 4 +- .../FlowHelpers/1.0.0/hardwareUtils.js | 4 +- .../FlowHelpers/1.0.0/hardwareUtils.test.js | 4 +- 38 files changed, 355 insertions(+), 74 deletions(-) create mode 100644 FlowPlugins/CommunityFlowTemplates/tutorials/chapter8.js diff --git a/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js index a2d331a..c67d80f 100644 --- a/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/audio/normalizeAudio/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/basic/basicVideoOrAudio/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/basic/basicVideoOrAudio/1.0.0/index.js index 885faa7..255d832 100644 --- a/FlowPlugins/CommunityFlowPlugins/basic/basicVideoOrAudio/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/basic/basicVideoOrAudio/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js index 200c5cc..0bf5e77 100644 --- a/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/classic/runClassicFilterPlugin/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js index 9610ea6..0bcade5 100644 --- a/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/2.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/2.0.0/index.js index 8748219..3cdd3bc 100644 --- a/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/2.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/classic/runClassicTranscodePlugin/2.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js index f48dee6..8519057 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandExecute/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js index 34f90f3..919fde5 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js @@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js index d4e0643..f370f02 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/checkFileExists/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/copyMoveFolderContent/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/copyMoveFolderContent/1.0.0/index.js index bc7e6ce..453ad76 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/copyMoveFolderContent/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/copyMoveFolderContent/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js index 6a6f563..ddee153 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/copyToDirectory/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js index 96c10d1..c9e55b0 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/copyToWorkDirectory/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js index f5d4210..a398ea6 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js index bd8f7fb..c493ce1 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/moveToDirectory/2.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js index 90d729a..073a640 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/moveToOriginalDirectory/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js index 76d913b..77d99be 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/renameFile/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js index fc27cc3..71b1cf3 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js index 7e72d26..1a2354f 100644 --- a/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/2.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/2.0.0/index.js index 6c396a7..0af7304 100644 --- a/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/2.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/handbrake/handbrakeCustomArguments/2.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js index 1ba6026..c181d93 100644 --- a/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/input/inputFile/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js index dfe4ac1..47242ac 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js @@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/apprise/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/apprise/1.0.0/index.js index 6bfce81..ef9f376 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/apprise/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/apprise/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js index 9737b75..2756564 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/1.0.0/index.js index 88a827f..83f3ca4 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/2.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/2.0.0/index.js index 8b0379f..77bd933 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/2.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/notifyRadarrOrSonarr/2.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/pauseUnpauseAllNodes/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/pauseUnpauseAllNodes/1.0.0/index.js index c0611e4..41b66e2 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/pauseUnpauseAllNodes/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/pauseUnpauseAllNodes/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/runCli/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/runCli/1.0.0/index.js index ac1909a..fbb5a5b 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/runCli/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/runCli/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js index 06e74ee..ec5f0cc 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/runMkvPropEdit/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/waitTimeout/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/waitTimeout/1.0.0/index.js index d71a5d4..5e9cf47 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/waitTimeout/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/waitTimeout/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js index 3ccf145..64a1712 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/video/runHealthCheck/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/runHealthCheck/1.0.0/index.js index dfc2d4a..cf5a694 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/runHealthCheck/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/runHealthCheck/1.0.0/index.js @@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js index aa543a0..5a60bad 100644 --- a/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/video/transcodeVideo/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/CommunityFlowTemplates/tutorials/chapter8.js b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter8.js new file mode 100644 index 0000000..ee899b9 --- /dev/null +++ b/FlowPlugins/CommunityFlowTemplates/tutorials/chapter8.js @@ -0,0 +1,281 @@ +"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 8: Unmapped Nodes", + "description": "Chapter 8: Unmapped Nodes", + "tags": "", + "flowPlugins": [ + { + "name": "Tags: Worker Type - Mapped Node", + "sourceRepo": "Community", + "pluginName": "tagsWorkerType", + "version": "1.0.0", + "id": "XDkUDTqXV", + "position": { + "x": 618.728206498488, + "y": 797.6991616678526 + }, + "fpEnabled": true, + "inputsDB": { + "requiredNodeTags": "mapped" + } + }, + { + "name": "Tags: Worker Type - Unmapped Node", + "sourceRepo": "Community", + "pluginName": "tagsWorkerType", + "version": "1.0.0", + "id": "Gm1kh8K5w", + "position": { + "x": 487.23666063579026, + "y": 281.79774016757386 + }, + "fpEnabled": true, + "inputsDB": { + "requiredNodeTags": "unmapped" + } + }, + { + "name": "Input File", + "sourceRepo": "Community", + "pluginName": "inputFile", + "version": "1.0.0", + "id": "pE6rU7gkW", + "position": { + "x": 788.5712895368422, + "y": 45.83576905176477 + }, + "fpEnabled": true + }, + { + "name": "Check if hevc", + "sourceRepo": "Community", + "pluginName": "checkVideoCodec", + "version": "1.0.0", + "id": "91b7IrsEc", + "position": { + "x": 788.2207108267078, + "y": 203.7781028159269 + }, + "fpEnabled": true + }, + { + "name": "Start", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandStart", + "version": "1.0.0", + "id": "4Swd6qzvc", + "position": { + "x": 489.25252076795084, + "y": 370.51229288382495 + }, + "fpEnabled": true + }, + { + "name": "Execute", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandExecute", + "version": "1.0.0", + "id": "450g167D8", + "position": { + "x": 488.72295602997406, + "y": 699.5034828311435 + }, + "fpEnabled": true + }, + { + "name": "Set Video Encoder", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetVideoEncoder", + "version": "1.0.0", + "id": "8B_6pRd_U", + "position": { + "x": 488.5270135748424, + "y": 477.83202026423606 + }, + "fpEnabled": true + }, + { + "name": "Replace Original File", + "sourceRepo": "Community", + "pluginName": "replaceOriginalFile", + "version": "1.0.0", + "id": "4fkfOyR3l", + "position": { + "x": 797.2573001129032, + "y": 882.7619863463507 + }, + "fpEnabled": true + }, + { + "name": "Set Container", + "sourceRepo": "Community", + "pluginName": "ffmpegCommandSetContainer", + "version": "1.0.0", + "id": "TtKXi3Q7h", + "position": { + "x": 488.21110165973323, + "y": 570.3064821931456 + }, + "fpEnabled": true + }, + { + "name": "Tags: Worker Type - Mapped Node", + "sourceRepo": "Community", + "pluginName": "tagsWorkerType", + "version": "1.0.0", + "id": "7Y_fzVfGm", + "position": { + "x": 788.7823658666633, + "y": 127.15363454994434 + }, + "fpEnabled": true, + "inputsDB": { + "requiredNodeTags": "mapped" + } + }, + { + "name": "We will check the file codec on a mapped node. This way bandwidth and time is saved as we don't need to unnecessarily send the whole file to the unmapped node.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "6oOV2PLSr", + "position": { + "x": 958.0256289687773, + "y": 129.22000506355067 + }, + "fpEnabled": true + }, + { + "name": "If the codec is not what we want, we'll require the next transcoding steps to run on an unmapped node. The unmapped node will automatically download the file from the server.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "j343VFewY", + "position": { + "x": 316.4293037925603, + "y": 290.6548883625747 + }, + "fpEnabled": true + }, + { + "name": "After the transcode, we'll run the original file replacement on a mapped node which has access to the server file system. The mapped node will automatically download the working file from the unmapped node.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "hVhthld87", + "position": { + "x": 364.852600714643, + "y": 769.3367928955186 + }, + "fpEnabled": true + }, + { + "name": "Before starting, ensure that in the Node options panel on the Tdarr tab, the mapped node has node tag 'mapped' and the umapped node has node tag 'umapped'.", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "9sd__MisF", + "position": { + "x": 791.5682800167409, + "y": -93.09360376469954 + }, + "fpEnabled": true + }, + { + "name": "Unmapped nodes are a new node type for Tdarr Pro members on 2.27.01 and above. More info: https://docs.tdarr.io/docs/nodes/nodes#unmapped", + "sourceRepo": "Community", + "pluginName": "comment", + "version": "1.0.0", + "id": "EILF-RWh2", + "position": { + "x": 791.4236829857584, + "y": -209.23734619332546 + }, + "fpEnabled": true + } + ], + "flowEdges": [ + { + "source": "4Swd6qzvc", + "sourceHandle": "1", + "target": "8B_6pRd_U", + "targetHandle": null, + "id": "3Df7Xoy93" + }, + { + "source": "8B_6pRd_U", + "sourceHandle": "1", + "target": "TtKXi3Q7h", + "targetHandle": null, + "id": "epqtLsPuG" + }, + { + "source": "TtKXi3Q7h", + "sourceHandle": "1", + "target": "450g167D8", + "targetHandle": null, + "id": "ljOeP0cAZ" + }, + { + "source": "450g167D8", + "sourceHandle": "1", + "target": "XDkUDTqXV", + "targetHandle": null, + "id": "3412q1wK2" + }, + { + "source": "XDkUDTqXV", + "sourceHandle": "1", + "target": "4fkfOyR3l", + "targetHandle": null, + "id": "3jQP_egvG" + }, + { + "source": "pE6rU7gkW", + "sourceHandle": "1", + "target": "7Y_fzVfGm", + "targetHandle": null, + "id": "XHRuig1Dp" + }, + { + "source": "7Y_fzVfGm", + "sourceHandle": "1", + "target": "91b7IrsEc", + "targetHandle": null, + "id": "_CJ9H5I_X" + }, + { + "source": "91b7IrsEc", + "sourceHandle": "1", + "target": "4fkfOyR3l", + "targetHandle": null, + "id": "2x5mRYwOU" + }, + { + "source": "91b7IrsEc", + "sourceHandle": "2", + "target": "Gm1kh8K5w", + "targetHandle": null, + "id": "8eBsa60Xp" + }, + { + "source": "Gm1kh8K5w", + "sourceHandle": "1", + "target": "4Swd6qzvc", + "targetHandle": null, + "id": "IryDiBCVX" + }, + { + "source": "EILF-RWh2", + "sourceHandle": "1", + "target": "9sd__MisF", + "targetHandle": null, + "id": "IPiPj8zhv" + } + ] +}); }; +exports.details = details; diff --git a/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js b/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js index 69a6e69..19e796c 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js +++ b/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/FlowHelpers/1.0.0/cliUtils.js b/FlowPlugins/FlowHelpers/1.0.0/cliUtils.js index 1acba4b..8ed28b2 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/cliUtils.js +++ b/FlowPlugins/FlowHelpers/1.0.0/cliUtils.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/FlowHelpers/1.0.0/fileMoveOrCopy.js b/FlowPlugins/FlowHelpers/1.0.0/fileMoveOrCopy.js index 8dc2dbc..06f3e56 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/fileMoveOrCopy.js +++ b/FlowPlugins/FlowHelpers/1.0.0/fileMoveOrCopy.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/FlowHelpers/1.0.0/fileUtils.js b/FlowPlugins/FlowHelpers/1.0.0/fileUtils.js index 49e8d2b..a0306cf 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/fileUtils.js +++ b/FlowPlugins/FlowHelpers/1.0.0/fileUtils.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js index 1b188ef..c91aa70 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js +++ b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js @@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); diff --git a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js index 88def6d..1211dee 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js +++ b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); From 279bc3f628630760e83107d04c8aebbcf21a7504 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Thu, 17 Oct 2024 23:28:35 +0100 Subject: [PATCH 03/34] Add Custom JS Function --- .../tools/customFunction/1.0.0/index.js | 112 ++++++++++++++++++ .../tools/customFunction/1.0.0/index.ts | 85 +++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js create mode 100644 FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts diff --git a/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js new file mode 100644 index 0000000..4eb55b3 --- /dev/null +++ b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js @@ -0,0 +1,112 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.plugin = exports.details = void 0; +var fs_1 = require("fs"); +var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils"); +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +var details = function () { return ({ + name: 'Custom JS Function', + description: 'Write a custom function in JS to run', + style: { + borderColor: 'green', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faArrowRight', + inputs: [ + { + label: 'JS Code', + name: 'code', + type: 'string', + defaultValue: "\nmodule.exports = async (args) => {\n\n// do something here\n\n return {\n outputFileObj: args.inputFileObj,\n outputNumber: 1,\n variables: args.variables,\n };\n}\n ", + inputUI: { + type: 'textarea', + style: { + height: '200px', + }, + }, + tooltip: 'Write your custom function here', + }, + ], + outputs: [ + { + number: 1, + tooltip: 'Continue to output 1', + }, + { + number: 2, + tooltip: 'Continue to output 2', + }, + { + number: 3, + tooltip: 'Continue to output 3', + }, + { + number: 4, + tooltip: 'Continue to output 4', + }, + ], +}); }; +exports.details = details; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { + var lib, code, outputFilePath, func, response; + 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); + code = String(args.inputs.code); + outputFilePath = "".concat((0, fileUtils_1.getPluginWorkDir)(args), "/script.js"); + return [4 /*yield*/, fs_1.promises.writeFile(outputFilePath, code)]; + case 1: + _a.sent(); + func = require(outputFilePath); + return [4 /*yield*/, func(args)]; + case 2: + response = _a.sent(); + return [2 /*return*/, response]; + } + }); +}); }; +exports.plugin = plugin; diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts new file mode 100644 index 0000000..fcd01e7 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts @@ -0,0 +1,85 @@ +import { promises as fsp } from 'fs'; +import { getPluginWorkDir } from '../../../../FlowHelpers/1.0.0/fileUtils'; +import { + IpluginDetails, + IpluginInputArgs, + IpluginOutputArgs, +} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces'; + +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +const details = (): IpluginDetails => ({ + name: 'Custom JS Function', + description: 'Write a custom function in JS to run with up to 4 outputs', + style: { + borderColor: 'green', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faArrowRight', + inputs: [ + { + label: 'JS Code', + name: 'code', + type: 'string', + defaultValue: ` +module.exports = async (args) => { + +// do something here + + return { + outputFileObj: args.inputFileObj, + outputNumber: 1, + variables: args.variables, + }; +} + `, + inputUI: { + type: 'textarea', + style: { + height: '200px', + }, + }, + tooltip: 'Write your custom function here', + }, + ], + outputs: [ + { + number: 1, + tooltip: 'Continue to output 1', + }, + { + number: 2, + tooltip: 'Continue to output 2', + }, + { + number: 3, + tooltip: 'Continue to output 3', + }, + { + number: 4, + tooltip: 'Continue to output 4', + }, + ], +}); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +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 code = String(args.inputs.code); + + const outputFilePath = `${getPluginWorkDir(args)}/script.js`; + await fsp.writeFile(outputFilePath, code); + // eslint-disable-next-line import/no-dynamic-require + const func = require(outputFilePath); + const response = await func(args); + return response; +}; +export { + details, + plugin, +}; From 119a40ba2acb4928f6cb3dee237e16acdaa7a04c Mon Sep 17 00:00:00 2001 From: HaveAGitGat Date: Thu, 17 Oct 2024 22:30:47 +0000 Subject: [PATCH 04/34] Apply auto-build changes --- .../tools/customFunction/1.0.0/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js index 4eb55b3..69feb0d 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js @@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; 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; + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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."); @@ -42,7 +42,7 @@ var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils"); /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ var details = function () { return ({ name: 'Custom JS Function', - description: 'Write a custom function in JS to run', + description: 'Write a custom function in JS to run with up to 4 outputs', style: { borderColor: 'green', }, From 8becfc4118bfc6a9b30764ebc08eda4cc72770ec Mon Sep 17 00:00:00 2001 From: Brad Koehn Date: Fri, 29 Nov 2024 10:20:59 -0600 Subject: [PATCH 05/34] add rkmpp support --- .../Tdarr_Plugin_00td_action_transcode.js | 8 ++++++++ .../1.0.0/index.js | 1 + .../checkNodeHardwareEncoder/1.0.0/index.js | 1 + .../FlowHelpers/1.0.0/hardwareUtils.js | 20 +++++++++++++++++++ .../1.0.0/index.ts | 1 + .../FlowHelpers/1.0.0/hardwareUtils.ts | 20 +++++++++++++++++++ 6 files changed, 51 insertions(+) diff --git a/Community/Tdarr_Plugin_00td_action_transcode.js b/Community/Tdarr_Plugin_00td_action_transcode.js index 71e5b88..5c7808d 100644 --- a/Community/Tdarr_Plugin_00td_action_transcode.js +++ b/Community/Tdarr_Plugin_00td_action_transcode.js @@ -297,6 +297,10 @@ const getEncoder = async ({ enabled: false, filter: '-vf format=nv12,hwupload', }, + { + encoder: 'hevc_rkmpp', + enabled: false, + }, { encoder: 'hevc_qsv', enabled: false, @@ -310,6 +314,10 @@ const getEncoder = async ({ encoder: 'h264_nvenc', enabled: false, }, + { + encoder: 'h264_rkmpp', + enabled: false, + }, { encoder: 'h264_amf', enabled: false, diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js index 919fde5..29ff829 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.js @@ -172,6 +172,7 @@ var details = function () { return ({ options: [ 'auto', 'nvenc', + 'rkmpp', 'qsv', 'vaapi', 'videotoolbox', diff --git a/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js index 2756564..9ce6d27 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.js @@ -62,6 +62,7 @@ var details = function () { return ({ options: [ 'hevc_nvenc', 'hevc_amf', + 'hevc_rkmpp', 'hevc_vaapi', 'hevc_qsv', 'hevc_videotoolbox', diff --git a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js index c91aa70..a9057a1 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js +++ b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.js @@ -226,6 +226,16 @@ var getEncoder = function (_a) { return __awaiter(void 0, [_a], void 0, function outputArgs: [], filter: '', }, + { + encoder: 'hevc_rkmpp', + enabled: false, + inputArgs: [ + '-hwaccel', + 'rkmpp', + ], + outputArgs: [], + filter: '', + }, { encoder: 'hevc_amf', enabled: false, @@ -295,6 +305,16 @@ var getEncoder = function (_a) { return __awaiter(void 0, [_a], void 0, function outputArgs: [], filter: '', }, + { + encoder: 'h264_rkmpp', + enabled: false, + inputArgs: [ + '-hwaccel', + 'rkmpp', + ], + outputArgs: [], + filter: '', + }, { encoder: 'h264_videotoolbox', enabled: false, diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts index 3591ce0..de2182a 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetVideoEncoder/1.0.0/index.ts @@ -140,6 +140,7 @@ const details = (): IpluginDetails => ({ options: [ 'auto', 'nvenc', + 'rkmpp', 'qsv', 'vaapi', 'videotoolbox', diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.ts b/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.ts index 90462b1..8e4523a 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.ts @@ -203,6 +203,16 @@ export const getEncoder = async ({ outputArgs: [], filter: '', }, + { + encoder: 'hevc_rkmpp', + enabled: false, + inputArgs: [ + '-hwaccel', + 'rkmpp', + ], + outputArgs: [], + filter: '', + }, { encoder: 'hevc_amf', enabled: false, @@ -275,6 +285,16 @@ export const getEncoder = async ({ outputArgs: [], filter: '', }, + { + encoder: 'h264_rkmpp', + enabled: false, + inputArgs: [ + '-hwaccel', + 'rkmpp', + ], + outputArgs: [], + filter: '', + }, { encoder: 'h264_videotoolbox', enabled: false, From 79256d342d8f3945ae9d330df64f5c6819516af8 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:38:08 +0000 Subject: [PATCH 06/34] Fix: use overallInputArguments --- .../ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts index cfdcf4f..294f2ed 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.ts @@ -124,7 +124,7 @@ const plugin = (args: IpluginInputArgs): IpluginOutputArgs => { 'mpeg', ].includes(container) ) { - args.variables.ffmpegCommand.overallOuputArguments.push('-fflags', '+genpts'); + args.variables.ffmpegCommand.overallInputArguments.push('-fflags', '+genpts'); } } From d2780eb933942f35b5805526ac31918a288ecda3 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:39:40 +0000 Subject: [PATCH 07/34] Apply auto-build changes --- .../ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js index af48a2d..65c5142 100644 --- a/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/ffmpegCommand/ffmpegCommandSetContainer/1.0.0/index.js @@ -105,7 +105,7 @@ var plugin = function (args) { 'mpg', 'mpeg', ].includes(container)) { - args.variables.ffmpegCommand.overallOuputArguments.push('-fflags', '+genpts'); + args.variables.ffmpegCommand.overallInputArguments.push('-fflags', '+genpts'); } } return { From eb910cb2c7200278941cd4834c032cecfb08fd03 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:57:45 +0000 Subject: [PATCH 08/34] Update description #747 --- .../file/replaceOriginalFile/1.0.0/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts index 3f48f23..f4182f0 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts @@ -13,7 +13,11 @@ import { /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ const details = (): IpluginDetails => ({ name: 'Replace Original File', - description: 'Replace the original file. If the file hasn\'t changed then no action is taken.', + description: ` + Replace the original file with the 'working' file passed into this plugin. + If the file hasn't changed then no action is taken. + Note: The 'working' filename and container will replace the original filename and container. + `, style: { borderColor: 'green', }, From bf485200752672092c7d5b1b9b62409a0e6071da Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:59:24 +0000 Subject: [PATCH 09/34] Apply auto-build changes --- .../file/replaceOriginalFile/1.0.0/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js index 71b1cf3..4440a66 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js @@ -46,7 +46,7 @@ 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. If the file hasn\'t changed then no action is taken.', + description: "\n Replace the original file with the 'working' file passed into this plugin. \n If the file hasn't changed then no action is taken.\n Note: The 'working' filename and container will replace the original filename and container.\n ", style: { borderColor: 'green', }, From 82a2a7bca17190d6e39ee5ea58762f37dbbdbb95 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sun, 26 Jan 2025 21:37:35 +0000 Subject: [PATCH 10/34] Add example info to Custom JS Function --- .../tools/customFunction/1.0.0/index.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts index fcd01e7..7d24f28 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts @@ -1,3 +1,5 @@ +/* eslint-disable max-len */ + import { promises as fsp } from 'fs'; import { getPluginWorkDir } from '../../../../FlowHelpers/1.0.0/fileUtils'; import { @@ -27,6 +29,23 @@ const details = (): IpluginDetails => ({ defaultValue: ` module.exports = async (args) => { +// see args object data here https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts +// example setting flow variable: https://github.com/HaveAGitGat/Tdarr/issues/1147#issuecomment-2593348443 +// example reading ffmpeg metadata: https://github.com/HaveAGitGat/Tdarr_Plugins/issues/737#issuecomment-2581536112 + +// some example file data: +console.log(args.inputFileObj._id) +console.log(args.inputFileObj.file_size) +console.log(args.inputFileObj.ffProbeData.streams[0].codec_name) +console.log(args.inputFileObj.mediaInfo.track[0].BitRate) + +// access global variable: +console.log(args.userVariables.global.test) +// access library variable: +console.log(args.userVariables.library.test) + + + // do something here return { From fd66a2329204d2d3f2638c6240efcfcb71da2b7e Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sun, 26 Jan 2025 21:39:17 +0000 Subject: [PATCH 11/34] Apply auto-build changes --- .../CommunityFlowPlugins/tools/customFunction/1.0.0/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js index 69feb0d..e0a5cb2 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js @@ -1,4 +1,5 @@ "use strict"; +/* eslint-disable max-len */ 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) { @@ -57,7 +58,7 @@ var details = function () { return ({ label: 'JS Code', name: 'code', type: 'string', - defaultValue: "\nmodule.exports = async (args) => {\n\n// do something here\n\n return {\n outputFileObj: args.inputFileObj,\n outputNumber: 1,\n variables: args.variables,\n };\n}\n ", + defaultValue: "\nmodule.exports = async (args) => {\n\n// see args object data here https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts\n// example setting flow variable: https://github.com/HaveAGitGat/Tdarr/issues/1147#issuecomment-2593348443\n// example reading ffmpeg metadata: https://github.com/HaveAGitGat/Tdarr_Plugins/issues/737#issuecomment-2581536112\n\n// some example file data:\nconsole.log(args.inputFileObj._id)\nconsole.log(args.inputFileObj.file_size)\nconsole.log(args.inputFileObj.ffProbeData.streams[0].codec_name)\nconsole.log(args.inputFileObj.mediaInfo.track[0].BitRate)\n\n// access global variable:\nconsole.log(args.userVariables.global.test)\n// access library variable:\nconsole.log(args.userVariables.library.test)\n\n\n\n// do something here\n\n return {\n outputFileObj: args.inputFileObj,\n outputNumber: 1,\n variables: args.variables,\n };\n}\n ", inputUI: { type: 'textarea', style: { From 22836757cb67f359f126b7fac67c06aa7dbcef48 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:26:58 +0000 Subject: [PATCH 12/34] Add Clear Cache --- .../tools/clearCache/1.0.0/index.ts | 125 ++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 FlowPluginsTs/CommunityFlowPlugins/tools/clearCache/1.0.0/index.ts diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/clearCache/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/clearCache/1.0.0/index.ts new file mode 100644 index 0000000..5849928 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/clearCache/1.0.0/index.ts @@ -0,0 +1,125 @@ +import { promises as fsp } from 'fs'; +import { + IpluginDetails, + IpluginInputArgs, + IpluginOutputArgs, +} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces'; +import normJoinPath from '../../../../FlowHelpers/1.0.0/normJoinPath'; + +const helperText = ` + jobCache: Clears all other files in this job's cache folder (which is a subfolder of the library cache). + libraryCache: Clears all other files in the library cache. + `; + +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +const details = (): IpluginDetails => ({ + name: 'Clear Cache', + description: ` + This plugin allows you to clear various cache folders, keeping only the current 'working' file. + ${helperText} + + `, + style: { + borderColor: 'red', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faTrash', + inputs: [ + { + label: 'Cache To Clear', + name: 'cacheToClear', + type: 'string', + defaultValue: 'jobCache', + inputUI: { + type: 'dropdown', + options: [ + 'jobCache', + 'libraryCache', + ], + }, + tooltip: `Specify which cache to clear + ${helperText} + `, + }, + ], + outputs: [ + { + number: 1, + tooltip: 'Continue to next plugin', + }, + ], +}); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +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 { cacheToClear } = args.inputs; + + const currentFile = args.inputFileObj._id; + const jobCacheDir = args.workDir; + const libraryCacheDir = args.librarySettings.cache; + + let folderToClear = ''; + + if (cacheToClear === 'jobCache') { + folderToClear = jobCacheDir; + } else if (cacheToClear === 'libraryCache') { + folderToClear = libraryCacheDir; + } + + args.jobLog(`Clearing ${cacheToClear} folder: "${folderToClear}"`); + args.jobLog(`Keeping current file: "${currentFile}"`); + + const traverseFolder = async (dir:string) => { + const filesInDir = (await fsp.readdir(dir)).map((file) => normJoinPath({ + upath: args.deps.upath, + paths: [ + dir, + file, + ], + })); + + for (let i = 0; i < filesInDir.length; i += 1) { + const file = filesInDir[i]; + + // eslint-disable-next-line no-await-in-loop + const stat = await fsp.stat(file); + + if (stat.isDirectory()) { + // eslint-disable-next-line no-await-in-loop + await traverseFolder(file); + } else if ( + file !== currentFile + // prevent deleting non Tdarr cache files + && file.includes('tdarr-workDir2') + ) { + args.jobLog(`Deleting "${file}"`); + try { + // eslint-disable-next-line no-await-in-loop + await fsp.unlink(file); + } catch (err) { + args.jobLog(`File delete error: ${JSON.stringify(err)}`); + } + } + } + }; + + await traverseFolder(folderToClear); + + return { + outputFileObj: args.inputFileObj, + outputNumber: 1, + variables: args.variables, + }; +}; +export { + details, + plugin, +}; From e3a595c1eec1917e0709b399dbadf833028e7740 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:28:33 +0000 Subject: [PATCH 13/34] Apply auto-build changes --- .../tools/clearCache/1.0.0/index.js | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 FlowPlugins/CommunityFlowPlugins/tools/clearCache/1.0.0/index.js diff --git a/FlowPlugins/CommunityFlowPlugins/tools/clearCache/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/clearCache/1.0.0/index.js new file mode 100644 index 0000000..2bbdb97 --- /dev/null +++ b/FlowPlugins/CommunityFlowPlugins/tools/clearCache/1.0.0/index.js @@ -0,0 +1,169 @@ +"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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); + return g.next = verb(0), g["throw"] = verb(1), g["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 }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.plugin = exports.details = void 0; +var fs_1 = require("fs"); +var normJoinPath_1 = __importDefault(require("../../../../FlowHelpers/1.0.0/normJoinPath")); +var helperText = "\n jobCache: Clears all other files in this job's cache folder (which is a subfolder of the library cache).\n libraryCache: Clears all other files in the library cache.\n "; +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +var details = function () { return ({ + name: 'Clear Cache', + description: "\n This plugin allows you to clear various cache folders, keeping only the current 'working' file.\n ".concat(helperText, "\n\n "), + style: { + borderColor: 'red', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.11.01', + sidebarPosition: -1, + icon: 'faTrash', + inputs: [ + { + label: 'Cache To Clear', + name: 'cacheToClear', + type: 'string', + defaultValue: 'jobCache', + inputUI: { + type: 'dropdown', + options: [ + 'jobCache', + 'libraryCache', + ], + }, + tooltip: "Specify which cache to clear \n ".concat(helperText, "\n "), + }, + ], + outputs: [ + { + number: 1, + tooltip: 'Continue to next plugin', + }, + ], +}); }; +exports.details = details; +// eslint-disable-next-line @typescript-eslint/no-unused-vars +var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { + var lib, cacheToClear, currentFile, jobCacheDir, libraryCacheDir, folderToClear, traverseFolder; + 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); + cacheToClear = args.inputs.cacheToClear; + currentFile = args.inputFileObj._id; + jobCacheDir = args.workDir; + libraryCacheDir = args.librarySettings.cache; + folderToClear = ''; + if (cacheToClear === 'jobCache') { + folderToClear = jobCacheDir; + } + else if (cacheToClear === 'libraryCache') { + folderToClear = libraryCacheDir; + } + args.jobLog("Clearing ".concat(cacheToClear, " folder: \"").concat(folderToClear, "\"")); + args.jobLog("Keeping current file: \"".concat(currentFile, "\"")); + traverseFolder = function (dir) { return __awaiter(void 0, void 0, void 0, function () { + var filesInDir, i, file, stat, err_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, fs_1.promises.readdir(dir)]; + case 1: + filesInDir = (_a.sent()).map(function (file) { return (0, normJoinPath_1.default)({ + upath: args.deps.upath, + paths: [ + dir, + file, + ], + }); }); + i = 0; + _a.label = 2; + case 2: + if (!(i < filesInDir.length)) return [3 /*break*/, 10]; + file = filesInDir[i]; + return [4 /*yield*/, fs_1.promises.stat(file)]; + case 3: + stat = _a.sent(); + if (!stat.isDirectory()) return [3 /*break*/, 5]; + // eslint-disable-next-line no-await-in-loop + return [4 /*yield*/, traverseFolder(file)]; + case 4: + // eslint-disable-next-line no-await-in-loop + _a.sent(); + return [3 /*break*/, 9]; + case 5: + if (!(file !== currentFile + // prevent deleting non Tdarr cache files + && file.includes('tdarr-workDir2'))) return [3 /*break*/, 9]; + args.jobLog("Deleting \"".concat(file, "\"")); + _a.label = 6; + case 6: + _a.trys.push([6, 8, , 9]); + // eslint-disable-next-line no-await-in-loop + return [4 /*yield*/, fs_1.promises.unlink(file)]; + case 7: + // eslint-disable-next-line no-await-in-loop + _a.sent(); + return [3 /*break*/, 9]; + case 8: + err_1 = _a.sent(); + args.jobLog("File delete error: ".concat(JSON.stringify(err_1))); + return [3 /*break*/, 9]; + case 9: + i += 1; + return [3 /*break*/, 2]; + case 10: return [2 /*return*/]; + } + }); + }); }; + return [4 /*yield*/, traverseFolder(folderToClear)]; + case 1: + _a.sent(); + return [2 /*return*/, { + outputFileObj: args.inputFileObj, + outputNumber: 1, + variables: args.variables, + }]; + } + }); +}); }; +exports.plugin = plugin; From 3e64069d4e5ae810b9554085068c52fabab7d626 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:51:26 +0000 Subject: [PATCH 14/34] Update description --- .../CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts index b2981d6..8e3637c 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.ts @@ -7,8 +7,7 @@ import { /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ const details = ():IpluginDetails => ({ name: 'Set Original File', - description: 'Set the working file to the original file path at the very start of the flow. ' - + 'The original file won\'t be affected by subsequent plugins (E.g. Replace Original File).', + description: 'Set the working file to the original file path at the very start of the flow.', style: { borderColor: 'green', }, From 67e8851a173a059fe268dd8e2e8acb26a98ca0e9 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:53:00 +0000 Subject: [PATCH 15/34] Apply auto-build changes --- .../CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js index 6ccebcd..00f35d1 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/setOriginalFile/1.0.0/index.js @@ -4,8 +4,7 @@ exports.plugin = exports.details = void 0; /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ var details = function () { return ({ name: 'Set Original File', - description: 'Set the working file to the original file path at the very start of the flow. ' - + 'The original file won\'t be affected by subsequent plugins (E.g. Replace Original File).', + description: 'Set the working file to the original file path at the very start of the flow.', style: { borderColor: 'green', }, From 4694be14be9a4e91d4d0bbdade2acfe23b2571a4 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:56:50 +0000 Subject: [PATCH 16/34] Update examples --- .../CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts index 7d24f28..c6a5cc5 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts @@ -32,6 +32,7 @@ module.exports = async (args) => { // see args object data here https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts // example setting flow variable: https://github.com/HaveAGitGat/Tdarr/issues/1147#issuecomment-2593348443 // example reading ffmpeg metadata: https://github.com/HaveAGitGat/Tdarr_Plugins/issues/737#issuecomment-2581536112 +// example example setting working file as previous working file: https://github.com/HaveAGitGat/Tdarr/issues/1106#issuecomment-2622177459 // some example file data: console.log(args.inputFileObj._id) From 8d7a59d516413db7b903f0cbd2e1766a33b0ada0 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:58:18 +0000 Subject: [PATCH 17/34] Remove duplicate word in description --- .../CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts index c6a5cc5..840e240 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/customFunction/1.0.0/index.ts @@ -32,7 +32,7 @@ module.exports = async (args) => { // see args object data here https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts // example setting flow variable: https://github.com/HaveAGitGat/Tdarr/issues/1147#issuecomment-2593348443 // example reading ffmpeg metadata: https://github.com/HaveAGitGat/Tdarr_Plugins/issues/737#issuecomment-2581536112 -// example example setting working file as previous working file: https://github.com/HaveAGitGat/Tdarr/issues/1106#issuecomment-2622177459 +// example setting working file as previous working file: https://github.com/HaveAGitGat/Tdarr/issues/1106#issuecomment-2622177459 // some example file data: console.log(args.inputFileObj._id) From f6ee01e5105ebcaf7fc034d2bbbe5d2e68d5f4f2 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 16:59:53 +0000 Subject: [PATCH 18/34] Apply auto-build changes --- .../CommunityFlowPlugins/tools/customFunction/1.0.0/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js index e0a5cb2..753b78f 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/customFunction/1.0.0/index.js @@ -58,7 +58,7 @@ var details = function () { return ({ label: 'JS Code', name: 'code', type: 'string', - defaultValue: "\nmodule.exports = async (args) => {\n\n// see args object data here https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts\n// example setting flow variable: https://github.com/HaveAGitGat/Tdarr/issues/1147#issuecomment-2593348443\n// example reading ffmpeg metadata: https://github.com/HaveAGitGat/Tdarr_Plugins/issues/737#issuecomment-2581536112\n\n// some example file data:\nconsole.log(args.inputFileObj._id)\nconsole.log(args.inputFileObj.file_size)\nconsole.log(args.inputFileObj.ffProbeData.streams[0].codec_name)\nconsole.log(args.inputFileObj.mediaInfo.track[0].BitRate)\n\n// access global variable:\nconsole.log(args.userVariables.global.test)\n// access library variable:\nconsole.log(args.userVariables.library.test)\n\n\n\n// do something here\n\n return {\n outputFileObj: args.inputFileObj,\n outputNumber: 1,\n variables: args.variables,\n };\n}\n ", + defaultValue: "\nmodule.exports = async (args) => {\n\n// see args object data here https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts\n// example setting flow variable: https://github.com/HaveAGitGat/Tdarr/issues/1147#issuecomment-2593348443\n// example reading ffmpeg metadata: https://github.com/HaveAGitGat/Tdarr_Plugins/issues/737#issuecomment-2581536112\n// example setting working file as previous working file: https://github.com/HaveAGitGat/Tdarr/issues/1106#issuecomment-2622177459\n\n// some example file data:\nconsole.log(args.inputFileObj._id)\nconsole.log(args.inputFileObj.file_size)\nconsole.log(args.inputFileObj.ffProbeData.streams[0].codec_name)\nconsole.log(args.inputFileObj.mediaInfo.track[0].BitRate)\n\n// access global variable:\nconsole.log(args.userVariables.global.test)\n// access library variable:\nconsole.log(args.userVariables.library.test)\n\n\n\n// do something here\n\n return {\n outputFileObj: args.inputFileObj,\n outputNumber: 1,\n variables: args.variables,\n };\n}\n ", inputUI: { type: 'textarea', style: { From 88ae273f5f4c285313e50a963567b90dafd1db87 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:42:57 +0000 Subject: [PATCH 19/34] Add deleteWorkingFileIfOriginal toggle --- .../file/deleteFile/1.0.0/index.ts | 50 +++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts index e403d9c..98338a0 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts @@ -35,6 +35,32 @@ const details = (): IpluginDetails => ({ }, tooltip: 'Specify the file to delete', }, + { + label: 'Delete Working File If It\'s The Original File', + name: 'deleteWorkingFileIfOriginal', + type: 'boolean', + defaultValue: 'true', + inputUI: { + type: 'switch', + displayConditions: { + logic: 'AND', + sets: [ + { + logic: 'AND', + inputs: [ + { + name: 'fileToDelete', + value: 'workingFile', + condition: '===', + }, + ], + }, + ], + }, + }, + tooltip: 'If the option above is set to delete the working file,' + + ' and the working file is the original file, delete the file.', + }, { label: 'Delete Parent Folder If Empty', name: 'deleteParentFolderIfEmpty', @@ -61,11 +87,29 @@ const plugin = async (args: IpluginInputArgs): Promise => { args.inputs = lib.loadDefaultValues(args.inputs, details); const fileToDelete = String(args.inputs.fileToDelete); - const { deleteParentFolderIfEmpty } = args.inputs; + const { + deleteParentFolderIfEmpty, + deleteWorkingFileIfOriginal, + } = args.inputs; if (fileToDelete === 'workingFile') { - args.jobLog(`Deleting working file ${args.inputFileObj._id}`); - await fsp.unlink(args.inputFileObj._id); + const workingFileIsOriginal = args.originalLibraryFile._id === args.inputFileObj._id; + + if (workingFileIsOriginal) { + args.jobLog('Working file is the original file!'); + } else { + args.jobLog('Working file is not the original file!'); + } + + if ( + (workingFileIsOriginal && deleteWorkingFileIfOriginal) + || !workingFileIsOriginal + ) { + args.jobLog(`Deleting working file ${args.inputFileObj._id}`); + await fsp.unlink(args.inputFileObj._id); + } else { + args.jobLog('Skipping delete of working file because it is the original file'); + } } else if (fileToDelete === 'originalFile') { args.jobLog(`Deleting original file ${args.originalLibraryFile._id}`); await fsp.unlink(args.originalLibraryFile._id); From 087790a3af4a931e92f709ce169a64590bc78f01 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:45:00 +0000 Subject: [PATCH 20/34] Apply auto-build changes --- .../file/deleteFile/1.0.0/index.js | 89 +++++++++++++------ 1 file changed, 64 insertions(+), 25 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js index a398ea6..40d2c70 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js @@ -67,6 +67,32 @@ var details = function () { return ({ }, tooltip: 'Specify the file to delete', }, + { + label: 'Delete Working File If It\'s The Original File', + name: 'deleteWorkingFileIfOriginal', + type: 'boolean', + defaultValue: 'true', + inputUI: { + type: 'switch', + displayConditions: { + logic: 'AND', + sets: [ + { + logic: 'AND', + inputs: [ + { + name: 'fileToDelete', + value: 'workingFile', + condition: '===', + }, + ], + }, + ], + }, + }, + tooltip: 'If the option above is set to delete the working file,' + + ' and the working file is the original file, delete the file.', + }, { label: 'Delete Parent Folder If Empty', name: 'deleteParentFolderIfEmpty', @@ -88,49 +114,62 @@ var details = function () { return ({ exports.details = details; // eslint-disable-next-line @typescript-eslint/no-unused-vars var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { - var lib, fileToDelete, deleteParentFolderIfEmpty, fileDir, files; - return __generator(this, function (_a) { - switch (_a.label) { + var lib, fileToDelete, _a, deleteParentFolderIfEmpty, deleteWorkingFileIfOriginal, workingFileIsOriginal, fileDir, files; + return __generator(this, function (_b) { + switch (_b.label) { case 0: lib = require('../../../../../methods/lib')(); // eslint-disable-next-line @typescript-eslint/no-unused-vars,no-param-reassign args.inputs = lib.loadDefaultValues(args.inputs, details); fileToDelete = String(args.inputs.fileToDelete); - deleteParentFolderIfEmpty = args.inputs.deleteParentFolderIfEmpty; - if (!(fileToDelete === 'workingFile')) return [3 /*break*/, 2]; + _a = args.inputs, deleteParentFolderIfEmpty = _a.deleteParentFolderIfEmpty, deleteWorkingFileIfOriginal = _a.deleteWorkingFileIfOriginal; + if (!(fileToDelete === 'workingFile')) return [3 /*break*/, 4]; + workingFileIsOriginal = args.originalLibraryFile._id === args.inputFileObj._id; + if (workingFileIsOriginal) { + args.jobLog('Working file is the original file!'); + } + else { + args.jobLog('Working file is not the original file!'); + } + if (!((workingFileIsOriginal && deleteWorkingFileIfOriginal) + || !workingFileIsOriginal)) return [3 /*break*/, 2]; args.jobLog("Deleting working file ".concat(args.inputFileObj._id)); return [4 /*yield*/, fs_1.promises.unlink(args.inputFileObj._id)]; case 1: - _a.sent(); - return [3 /*break*/, 4]; + _b.sent(); + return [3 /*break*/, 3]; case 2: - if (!(fileToDelete === 'originalFile')) return [3 /*break*/, 4]; + args.jobLog('Skipping delete of working file because it is the original file'); + _b.label = 3; + case 3: return [3 /*break*/, 6]; + case 4: + if (!(fileToDelete === 'originalFile')) return [3 /*break*/, 6]; args.jobLog("Deleting original file ".concat(args.originalLibraryFile._id)); return [4 /*yield*/, fs_1.promises.unlink(args.originalLibraryFile._id)]; - case 3: - _a.sent(); - _a.label = 4; - case 4: + case 5: + _b.sent(); + _b.label = 6; + case 6: fileDir = (0, fileUtils_1.getFileAbosluteDir)(args.originalLibraryFile._id); - if (!deleteParentFolderIfEmpty) return [3 /*break*/, 9]; + if (!deleteParentFolderIfEmpty) return [3 /*break*/, 11]; args.jobLog("Checking if folder ".concat(fileDir, " is empty")); return [4 /*yield*/, fs_1.promises.readdir(fileDir)]; - case 5: - files = _a.sent(); - if (!(files.length === 0)) return [3 /*break*/, 7]; + case 7: + files = _b.sent(); + if (!(files.length === 0)) return [3 /*break*/, 9]; args.jobLog("Deleting empty folder ".concat(fileDir)); return [4 /*yield*/, fs_1.promises.rmdir(fileDir)]; - case 6: - _a.sent(); - return [3 /*break*/, 8]; - case 7: - args.jobLog("Folder ".concat(fileDir, " is not empty, skipping delete")); - _a.label = 8; - case 8: return [3 /*break*/, 10]; + case 8: + _b.sent(); + return [3 /*break*/, 10]; case 9: + args.jobLog("Folder ".concat(fileDir, " is not empty, skipping delete")); + _b.label = 10; + case 10: return [3 /*break*/, 12]; + case 11: args.jobLog("Skipping delete of parent folder ".concat(fileDir)); - _a.label = 10; - case 10: return [2 /*return*/, { + _b.label = 12; + case 12: return [2 /*return*/, { outputFileObj: args.inputFileObj, outputNumber: 1, variables: args.variables, From 45bfe77d74e2fbfcac7e036510208edebbefa081 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 17:29:02 +0000 Subject: [PATCH 21/34] Add Remove From Tdarr --- .../tools/removeFromTdarr/1.0.0/index.ts | 47 +++++++++++++++++++ .../1.0.0/interfaces/interfaces.ts | 3 +- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 FlowPluginsTs/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.ts diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.ts new file mode 100644 index 0000000..c5c00d6 --- /dev/null +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.ts @@ -0,0 +1,47 @@ +import { + IpluginDetails, + IpluginInputArgs, + IpluginOutputArgs, +} from '../../../../FlowHelpers/1.0.0/interfaces/interfaces'; + +/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ +const details = (): IpluginDetails => ({ + name: 'Remove From Tdarr', + description: ` + If this plugin is executed, then when the flow ends, the item will be + removed from the Tdarr database and won't appear in Transcode Success or Error tables on the 'Tdarr' tab. + Use the 'Delete File' plugin if you would like to delete the file from disk. + `, + style: { + borderColor: 'red', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.31.01', + sidebarPosition: -1, + icon: 'faTrash', + inputs: [], + outputs: [ + { + number: 1, + tooltip: 'Continue to next plugin', + }, + ], +}); + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +const plugin = (args: IpluginInputArgs): IpluginOutputArgs => { + // eslint-disable-next-line no-param-reassign + args.variables.removeFromTdarr = true; + + return { + outputFileObj: args.inputFileObj, + outputNumber: 1, + variables: args.variables, + }; +}; +export { + details, + plugin, +}; diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts index 490d3e9..80fbb35 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts @@ -111,7 +111,8 @@ export interface Ivariables { user: Record, healthCheck?: 'Success', queueTags?: string, - liveSizeCompare?: IliveSizeCompare + liveSizeCompare?: IliveSizeCompare, + removeFromTdarr?: boolean, } export interface IpluginOutputArgs { From 7e18703fbebb87083e0607b175a51b754a21ac6d Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 17:29:44 +0000 Subject: [PATCH 22/34] Update Delete File description --- .../CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts index 98338a0..c441985 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts @@ -10,7 +10,11 @@ import { getFileAbosluteDir } from '../../../../FlowHelpers/1.0.0/fileUtils'; /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ const details = (): IpluginDetails => ({ name: 'Delete File', - description: 'Delete the working file or original file.', + description: ` + Delete the working file or original file. + You don't need to use this plugin to clean up files in the cache, Tdarr will do this automatically after the flow. + To manually clear the cache, use the 'Clear Cache' flow plugin. + `, style: { borderColor: 'red', }, From 8b336d2596363f3dc510ac124fa6ec408d0487f2 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 17:30:27 +0000 Subject: [PATCH 23/34] Apply auto-build changes --- .../tools/removeFromTdarr/1.0.0/index.js | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 FlowPlugins/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.js diff --git a/FlowPlugins/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.js new file mode 100644 index 0000000..169b17f --- /dev/null +++ b/FlowPlugins/CommunityFlowPlugins/tools/removeFromTdarr/1.0.0/index.js @@ -0,0 +1,36 @@ +"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: 'Remove From Tdarr', + description: "\n If this plugin is executed, then when the flow ends, the item will be \n removed from the Tdarr database and won't appear in Transcode Success or Error tables on the 'Tdarr' tab.\n Use the 'Delete File' plugin if you would like to delete the file from disk.\n ", + style: { + borderColor: 'red', + }, + tags: '', + isStartPlugin: false, + pType: '', + requiresVersion: '2.31.01', + sidebarPosition: -1, + icon: 'faTrash', + 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) { + // eslint-disable-next-line no-param-reassign + args.variables.removeFromTdarr = true; + return { + outputFileObj: args.inputFileObj, + outputNumber: 1, + variables: args.variables, + }; +}; +exports.plugin = plugin; From d69465b22983e7d3c929228f798f344fdbe9af7c Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:07:32 +0000 Subject: [PATCH 24/34] Add Log Response Body option --- .../tools/webRequest/1.0.0/index.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts index 92cd8d6..486ba5b 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/webRequest/1.0.0/index.ts @@ -74,6 +74,16 @@ const details = (): IpluginDetails => ({ }, tooltip: 'Specify request body', }, + { + label: 'Log Response Body', + name: 'logResponseBody', + type: 'boolean', + defaultValue: 'false', + inputUI: { + type: 'switch', + }, + tooltip: 'Specify whether to log response body in the job report', + }, ], outputs: [ { @@ -93,6 +103,7 @@ const plugin = async (args: IpluginInputArgs): Promise => { const requestUrl = String(args.inputs.requestUrl); const requestHeaders = JSON.parse(String(args.inputs.requestHeaders)); const requestBody = JSON.parse(String(args.inputs.requestBody)); + const { logResponseBody } = args.inputs; const requestConfig = { method, @@ -104,6 +115,10 @@ const plugin = async (args: IpluginInputArgs): Promise => { try { const res = await args.deps.axios(requestConfig); args.jobLog(`Web request succeeded: Status Code: ${res.status}`); + + if (logResponseBody) { + args.jobLog(`Response Body: ${JSON.stringify(res.data)}`); + } } catch (err) { args.jobLog('Web Request Failed'); args.jobLog(JSON.stringify(err)); From fe53c48ccd33d3f3cbd97f9a4b657ff1376d9d14 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:09:11 +0000 Subject: [PATCH 25/34] Apply auto-build changes --- .../file/deleteFile/1.0.0/index.js | 2 +- .../tools/webRequest/1.0.0/index.js | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js index 40d2c70..bf2ce69 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js @@ -42,7 +42,7 @@ var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils"); /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ var details = function () { return ({ name: 'Delete File', - description: 'Delete the working file or original file.', + description: "\n Delete the working file or original file.\n You don't need to use this plugin to clean up files in the cache, Tdarr will do this automatically after the flow.\n To manually clear the cache, use the 'Clear Cache' flow plugin.\n ", style: { borderColor: 'red', }, diff --git a/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js index 64a1712..c4e3c24 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/webRequest/1.0.0/index.js @@ -103,6 +103,16 @@ var details = function () { return ({ }, tooltip: 'Specify request body', }, + { + label: 'Log Response Body', + name: 'logResponseBody', + type: 'boolean', + defaultValue: 'false', + inputUI: { + type: 'switch', + }, + tooltip: 'Specify whether to log response body in the job report', + }, ], outputs: [ { @@ -114,7 +124,7 @@ var details = function () { return ({ exports.details = details; // eslint-disable-next-line @typescript-eslint/no-unused-vars var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { - var lib, method, requestUrl, requestHeaders, requestBody, requestConfig, res, err_1; + var lib, method, requestUrl, requestHeaders, requestBody, logResponseBody, requestConfig, res, err_1; return __generator(this, function (_a) { switch (_a.label) { case 0: @@ -125,6 +135,7 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function requestUrl = String(args.inputs.requestUrl); requestHeaders = JSON.parse(String(args.inputs.requestHeaders)); requestBody = JSON.parse(String(args.inputs.requestBody)); + logResponseBody = args.inputs.logResponseBody; requestConfig = { method: method, url: requestUrl, @@ -138,6 +149,9 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function case 2: res = _a.sent(); args.jobLog("Web request succeeded: Status Code: ".concat(res.status)); + if (logResponseBody) { + args.jobLog("Response Body: ".concat(JSON.stringify(res.data))); + } return [3 /*break*/, 4]; case 3: err_1 = _a.sent(); From f9444bbb97099bfd07f58a49c0d7e0042f2e21c4 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:25:29 +0000 Subject: [PATCH 26/34] Update description --- .../CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts index c441985..01e46d2 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts @@ -14,6 +14,8 @@ const details = (): IpluginDetails => ({ Delete the working file or original file. You don't need to use this plugin to clean up files in the cache, Tdarr will do this automatically after the flow. To manually clear the cache, use the 'Clear Cache' flow plugin. + If the working file is deleted, the plugin after this one should load a valid working file, such as 'Set Original File' to load the original file, + else subsequent plugins will error. `, style: { borderColor: 'red', From 3e4d18d7f679aee6dcaa95e93a530e42b796eada Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:27:09 +0000 Subject: [PATCH 27/34] Reorder description --- .../CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts index 01e46d2..67fd3aa 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/deleteFile/1.0.0/index.ts @@ -14,8 +14,8 @@ const details = (): IpluginDetails => ({ Delete the working file or original file. You don't need to use this plugin to clean up files in the cache, Tdarr will do this automatically after the flow. To manually clear the cache, use the 'Clear Cache' flow plugin. - If the working file is deleted, the plugin after this one should load a valid working file, such as 'Set Original File' to load the original file, - else subsequent plugins will error. + If the working file is deleted, the plugin after this one should load a valid working file, + such as 'Set Original File' to load the original file, else subsequent plugins will error. `, style: { borderColor: 'red', From fe76adf7441deb34dafb0391493633e960cbcef7 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:28:33 +0000 Subject: [PATCH 28/34] Apply auto-build changes --- FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js index bf2ce69..56651e2 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/deleteFile/1.0.0/index.js @@ -42,7 +42,7 @@ var fileUtils_1 = require("../../../../FlowHelpers/1.0.0/fileUtils"); /* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */ var details = function () { return ({ name: 'Delete File', - description: "\n Delete the working file or original file.\n You don't need to use this plugin to clean up files in the cache, Tdarr will do this automatically after the flow.\n To manually clear the cache, use the 'Clear Cache' flow plugin.\n ", + description: "\n Delete the working file or original file.\n You don't need to use this plugin to clean up files in the cache, Tdarr will do this automatically after the flow.\n To manually clear the cache, use the 'Clear Cache' flow plugin.\n If the working file is deleted, the plugin after this one should load a valid working file,\n such as 'Set Original File' to load the original file, else subsequent plugins will error.\n ", style: { borderColor: 'red', }, From 1307d5f48c9c25855cbd5ddf2e8ddb6b9ff649b7 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 19:54:13 +0000 Subject: [PATCH 29/34] Replace Original File: Additional logging --- .../file/replaceOriginalFile/1.0.0/index.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts index f4182f0..fb88b14 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.ts @@ -79,10 +79,18 @@ const plugin = async (args: IpluginInputArgs): Promise => { args, }); + const originalFileExists = await fileExists(args.originalLibraryFile._id); + const currentFileIsNotOriginal = args.originalLibraryFile._id !== currentPath; + + args.jobLog(JSON.stringify({ + originalFileExists, + currentFileIsNotOriginal, + })); + // delete original file if ( - await fileExists(args.originalLibraryFile._id) - && args.originalLibraryFile._id !== currentPath + originalFileExists + && currentFileIsNotOriginal ) { args.jobLog(`Deleting original file:${args.originalLibraryFile._id}`); await fsp.unlink(args.originalLibraryFile._id); From b3572df1b769b4c31e649e80914c933387f8cb8a Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Mon, 3 Feb 2025 19:55:35 +0000 Subject: [PATCH 30/34] Apply auto-build changes --- .../file/replaceOriginalFile/1.0.0/index.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js index 4440a66..f4b5c34 100644 --- a/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/file/replaceOriginalFile/1.0.0/index.js @@ -67,7 +67,7 @@ var details = function () { return ({ exports.details = details; // eslint-disable-next-line @typescript-eslint/no-unused-vars var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { - var lib, currentPath, orignalFolder, fileName, container, newPath, newPathTmp; + var lib, currentPath, orignalFolder, fileName, container, newPath, newPathTmp, originalFileExists, currentFileIsNotOriginal; return __generator(this, function (_a) { switch (_a.label) { case 0: @@ -108,8 +108,14 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function _a.sent(); return [4 /*yield*/, (0, fileUtils_1.fileExists)(args.originalLibraryFile._id)]; case 3: - if (!((_a.sent()) - && args.originalLibraryFile._id !== currentPath)) return [3 /*break*/, 5]; + originalFileExists = _a.sent(); + currentFileIsNotOriginal = args.originalLibraryFile._id !== currentPath; + args.jobLog(JSON.stringify({ + originalFileExists: originalFileExists, + currentFileIsNotOriginal: currentFileIsNotOriginal, + })); + if (!(originalFileExists + && currentFileIsNotOriginal)) return [3 /*break*/, 5]; args.jobLog("Deleting original file:".concat(args.originalLibraryFile._id)); return [4 /*yield*/, fs_1.promises.unlink(args.originalLibraryFile._id)]; case 4: From ddd3fea148e286b4edf19bb7d59aa5aeba9336c5 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:48:24 +0000 Subject: [PATCH 31/34] fix: add 'hevc_rkmpp' to .ts file --- .../tools/checkNodeHardwareEncoder/1.0.0/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.ts index d478819..c920050 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/checkNodeHardwareEncoder/1.0.0/index.ts @@ -38,6 +38,7 @@ const details = (): IpluginDetails => ({ options: [ 'hevc_nvenc', 'hevc_amf', + 'hevc_rkmpp', 'hevc_vaapi', 'hevc_qsv', 'hevc_videotoolbox', From 13cc0d0e4b6487e6cd929b72ce545df92a9f6e4b Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Sat, 15 Feb 2025 00:36:34 +0000 Subject: [PATCH 32/34] docs: add userVariables to interface --- FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts index 80fbb35..80175aa 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts @@ -128,6 +128,10 @@ export interface IpluginInputArgs { // eslint-disable-next-line @typescript-eslint/no-explicit-any librarySettings: any, inputs: Record, + userVariables: { + global: Record, + library: Record, + }, jobLog: Ilog, workDir: string, platform: string, From 24fb022b2cc7d0529f8381e0bfe0faa878aa849f Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Thu, 20 Feb 2025 15:24:33 +0000 Subject: [PATCH 33/34] chore: export checkHardware() --- .../FlowHelpers/1.0.0/hardwareUtils.test.ts | 69 +++++++++++++------ 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts b/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts index 5f5a90b..6db06a6 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/hardwareUtils.test.ts @@ -1,25 +1,52 @@ -import { getEncoder } from './hardwareUtils'; - -const run = async () => { - const encoderProperties = await getEncoder({ - targetCodec: 'h264', - hardwareEncoding: true, - hardwareType: 'auto', - // @ts-expect-error type - args: { - workerType: 'transcodegpu', - ffmpegPath: 'ffmpeg', - jobLog: (t:string) => { - // eslint-disable-next-line no-console - console.log(t); - }, +import { getEncoder, IgetEncoder } from './hardwareUtils'; + +const baseInput = { + targetCodec: 'h264', + hardwareEncoding: true, + hardwareType: 'auto', + args: { + workerType: 'transcodegpu', + ffmpegPath: 'ffmpeg', + jobLog: () => { + // }, - }); + }, +}; + +interface IcheckHardware { + targetCodec:string | undefined, + hardwareEncoding:boolean | undefined, + hardwareType:string | undefined, + ffmpegPath:string | undefined, +} + +const checkHardware = async (settings:IcheckHardware):Promise => { + const input = JSON.parse(JSON.stringify(baseInput)); + + input.args.jobLog = () => { + // eslint-disable-next-line no-console + // console.log(t); + }; + + if (settings.targetCodec) { + input.targetCodec = settings.targetCodec; + } + + if (settings.hardwareEncoding) { + input.hardwareEncoding = settings.hardwareEncoding; + } + + if (settings.hardwareType) { + input.hardwareType = settings.hardwareType; + } + + if (settings.ffmpegPath) { + input.args.ffmpegPath = settings.ffmpegPath; + } + + const encoderProperties = await getEncoder(input); - // eslint-disable-next-line no-console - console.log({ - encoderProperties, - }); + return encoderProperties; }; -void run(); +export default checkHardware; From 547901c3256dc4174c03840e92964f8b2a2c8315 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Thu, 20 Feb 2025 15:26:24 +0000 Subject: [PATCH 34/34] Apply auto-build changes --- .../FlowHelpers/1.0.0/hardwareUtils.test.js | 57 ++++++++++++------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js index 1211dee..71e35b7 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js +++ b/FlowPlugins/FlowHelpers/1.0.0/hardwareUtils.test.js @@ -37,32 +37,45 @@ var __generator = (this && this.__generator) || function (thisArg, body) { }; Object.defineProperty(exports, "__esModule", { value: true }); var hardwareUtils_1 = require("./hardwareUtils"); -var run = function () { return __awaiter(void 0, void 0, void 0, function () { - var encoderProperties; +var baseInput = { + targetCodec: 'h264', + hardwareEncoding: true, + hardwareType: 'auto', + args: { + workerType: 'transcodegpu', + ffmpegPath: 'ffmpeg', + jobLog: function () { + // + }, + }, +}; +var checkHardware = function (settings) { return __awaiter(void 0, void 0, void 0, function () { + var input, encoderProperties; return __generator(this, function (_a) { switch (_a.label) { - case 0: return [4 /*yield*/, (0, hardwareUtils_1.getEncoder)({ - targetCodec: 'h264', - hardwareEncoding: true, - hardwareType: 'auto', - // @ts-expect-error type - args: { - workerType: 'transcodegpu', - ffmpegPath: 'ffmpeg', - jobLog: function (t) { - // eslint-disable-next-line no-console - console.log(t); - }, - }, - })]; + case 0: + input = JSON.parse(JSON.stringify(baseInput)); + input.args.jobLog = function () { + // eslint-disable-next-line no-console + // console.log(t); + }; + if (settings.targetCodec) { + input.targetCodec = settings.targetCodec; + } + if (settings.hardwareEncoding) { + input.hardwareEncoding = settings.hardwareEncoding; + } + if (settings.hardwareType) { + input.hardwareType = settings.hardwareType; + } + if (settings.ffmpegPath) { + input.args.ffmpegPath = settings.ffmpegPath; + } + return [4 /*yield*/, (0, hardwareUtils_1.getEncoder)(input)]; case 1: encoderProperties = _a.sent(); - // eslint-disable-next-line no-console - console.log({ - encoderProperties: encoderProperties, - }); - return [2 /*return*/]; + return [2 /*return*/, encoderProperties]; } }); }); }; -void run(); +exports.default = checkHardware;