From 6ac8019e1d76c3eabaf8abd4c111ac9b4883a377 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Tue, 21 May 2024 18:11:11 +0100 Subject: [PATCH 1/4] Use Node scan function if available --- .../FlowHelpers/1.0.0/classicPlugins.ts | 53 ++++++++++++------- .../1.0.0/interfaces/interfaces.ts | 4 +- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts index 00c8977..5b2987b 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts @@ -90,25 +90,40 @@ export const runClassicPlugin = async (args:IpluginInputArgs, type:'filter'|'tra const scanTypes = getScanTypes([pluginSrcStr]); - const pluginInputFileObj = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { - file: { - _id: args.inputFileObj._id, - file: args.inputFileObj.file, - DB: args.inputFileObj.DB, - footprintId: args.inputFileObj.footprintId, - }, - scanTypes, - }); - - const originalLibraryFile = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { - file: { - _id: args.originalLibraryFile._id, - file: args.originalLibraryFile.file, - DB: args.originalLibraryFile.DB, - footprintId: args.originalLibraryFile.footprintId, - }, - scanTypes, - }); + let pluginInputFileObj; + let originalLibraryFile; + + const inputFileScanArgs = { + _id: args.inputFileObj._id, + file: args.inputFileObj.file, + DB: args.inputFileObj.DB, + footprintId: args.inputFileObj.footprintId, + }; + + const originalLibraryFileScanArgs = { + _id: args.originalLibraryFile._id, + file: args.originalLibraryFile.file, + DB: args.originalLibraryFile.DB, + footprintId: args.originalLibraryFile.footprintId, + }; + + if (typeof args.scanIndividualFile !== 'undefined') { + args.jobLog('Scanning files using Node'); + pluginInputFileObj = await args.scanIndividualFile(inputFileScanArgs, scanTypes); + originalLibraryFile = await args.scanIndividualFile(originalLibraryFileScanArgs, scanTypes); + } else { + args.jobLog('Scanning files using Server API'); + + pluginInputFileObj = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { + file: inputFileScanArgs, + scanTypes, + }); + + originalLibraryFile = await args.deps.axiosMiddleware('api/v2/scan-individual-file', { + file: originalLibraryFileScanArgs, + scanTypes, + }); + } const otherArguments = { handbrakePath: args.handbrakePath, diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts index efb4c36..77ada1f 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/interfaces/interfaces.ts @@ -1,4 +1,5 @@ -import { IFileObject, Istreams } from './synced/IFileObject'; +import { IscanTypes } from '../fileUtils'; +import { IFileObject, IFileObjectMin, Istreams } from './synced/IFileObject'; import Ijob from './synced/jobInterface'; export interface IpluginInputUi { @@ -136,6 +137,7 @@ export interface IpluginInputArgs { updateWorker: IupdateWorker, logFullCliOutput: boolean, logOutcome: (outcome: string) => void, + scanIndividualFile?: (filee: IFileObjectMin, scanTypes: IscanTypes) => IFileObject, deps: { // eslint-disable-next-line @typescript-eslint/no-explicit-any fsextra: any, From 98659977b9b245ba237b3fb38fe525a56ff58be2 Mon Sep 17 00:00:00 2001 From: HaveAGitGat Date: Tue, 21 May 2024 17:13:42 +0000 Subject: [PATCH 2/4] Apply auto-build changes --- .../FlowHelpers/1.0.0/classicPlugins.js | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js b/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js index f37b545..5050875 100644 --- a/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js +++ b/FlowPlugins/FlowHelpers/1.0.0/classicPlugins.js @@ -40,7 +40,7 @@ exports.runClassicPlugin = void 0; var fs_1 = require("fs"); var fileUtils_1 = require("./fileUtils"); var runClassicPlugin = function (args, type) { return __awaiter(void 0, void 0, void 0, function () { - var path, pluginSourceId, parts, pluginSource, pluginId, relativePluginPath, absolutePath, classicPlugin, pluginSrcStr, res, container, cacheFilePath, scanTypes, pluginInputFileObj, originalLibraryFile, otherArguments, result; + var path, pluginSourceId, parts, pluginSource, pluginId, relativePluginPath, absolutePath, classicPlugin, pluginSrcStr, res, container, cacheFilePath, scanTypes, pluginInputFileObj, originalLibraryFile, inputFileScanArgs, originalLibraryFileScanArgs, otherArguments, result; var _a; return __generator(this, function (_b) { switch (_b.label) { @@ -99,28 +99,43 @@ var runClassicPlugin = function (args, type) { return __awaiter(void 0, void 0, container = (0, fileUtils_1.getContainer)(args.inputFileObj._id); cacheFilePath = "".concat((0, fileUtils_1.getPluginWorkDir)(args), "/").concat((0, fileUtils_1.getFileName)(args.inputFileObj._id), ".").concat(container); scanTypes = (0, fileUtils_1.getScanTypes)([pluginSrcStr]); + inputFileScanArgs = { + _id: args.inputFileObj._id, + file: args.inputFileObj.file, + DB: args.inputFileObj.DB, + footprintId: args.inputFileObj.footprintId, + }; + originalLibraryFileScanArgs = { + _id: args.originalLibraryFile._id, + file: args.originalLibraryFile.file, + DB: args.originalLibraryFile.DB, + footprintId: args.originalLibraryFile.footprintId, + }; + if (!(typeof args.scanIndividualFile !== 'undefined')) return [3 /*break*/, 12]; + args.jobLog('Scanning files using Node'); + return [4 /*yield*/, args.scanIndividualFile(inputFileScanArgs, scanTypes)]; + case 10: + pluginInputFileObj = _b.sent(); + return [4 /*yield*/, args.scanIndividualFile(originalLibraryFileScanArgs, scanTypes)]; + case 11: + originalLibraryFile = _b.sent(); + return [3 /*break*/, 15]; + case 12: + args.jobLog('Scanning files using Server API'); return [4 /*yield*/, args.deps.axiosMiddleware('api/v2/scan-individual-file', { - file: { - _id: args.inputFileObj._id, - file: args.inputFileObj.file, - DB: args.inputFileObj.DB, - footprintId: args.inputFileObj.footprintId, - }, + file: inputFileScanArgs, scanTypes: scanTypes, })]; - case 10: + case 13: pluginInputFileObj = _b.sent(); return [4 /*yield*/, args.deps.axiosMiddleware('api/v2/scan-individual-file', { - file: { - _id: args.originalLibraryFile._id, - file: args.originalLibraryFile.file, - DB: args.originalLibraryFile.DB, - footprintId: args.originalLibraryFile.footprintId, - }, + file: originalLibraryFileScanArgs, scanTypes: scanTypes, })]; - case 11: + case 14: originalLibraryFile = _b.sent(); + _b.label = 15; + case 15: otherArguments = { handbrakePath: args.handbrakePath, ffmpegPath: args.ffmpegPath, @@ -135,7 +150,7 @@ var runClassicPlugin = function (args, type) { return __awaiter(void 0, void 0, job: args.job, }; return [4 /*yield*/, classicPlugin.plugin(pluginInputFileObj, args.librarySettings, args.inputs, otherArguments)]; - case 12: + case 16: result = _b.sent(); if (((_a = result === null || result === void 0 ? void 0 : result.file) === null || _a === void 0 ? void 0 : _a._id) && args.inputFileObj._id !== result.file._id) { // eslint-disable-next-line no-param-reassign From 8a807a0ab210a851ea2bc87608b6d6718059a221 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Tue, 21 May 2024 18:15:41 +0100 Subject: [PATCH 3/4] Add types --- FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts index 5b2987b..6923181 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts @@ -3,6 +3,7 @@ import { getContainer, getFileName, getPluginWorkDir, getScanTypes, } from './fileUtils'; import { IpluginInputArgs } from './interfaces/interfaces'; +import { IFileObject } from './interfaces/synced/IFileObject'; export interface IrunClassicPlugin { result:{ @@ -90,8 +91,8 @@ export const runClassicPlugin = async (args:IpluginInputArgs, type:'filter'|'tra const scanTypes = getScanTypes([pluginSrcStr]); - let pluginInputFileObj; - let originalLibraryFile; + let pluginInputFileObj:IFileObject; + let originalLibraryFile:IFileObject; const inputFileScanArgs = { _id: args.inputFileObj._id, From ff3c73fd86cd503ca3a51ecfabc60b4f2c57c7c2 Mon Sep 17 00:00:00 2001 From: HaveAGitGat <43864057+HaveAGitGat@users.noreply.github.com> Date: Tue, 21 May 2024 18:17:20 +0100 Subject: [PATCH 4/4] Add version comment --- FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts index 6923181..5ccf331 100644 --- a/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts +++ b/FlowPluginsTs/FlowHelpers/1.0.0/classicPlugins.ts @@ -108,6 +108,7 @@ export const runClassicPlugin = async (args:IpluginInputArgs, type:'filter'|'tra footprintId: args.originalLibraryFile.footprintId, }; + // added in 2.19.01 if (typeof args.scanIndividualFile !== 'undefined') { args.jobLog('Scanning files using Node'); pluginInputFileObj = await args.scanIndividualFile(inputFileScanArgs, scanTypes);