From 2903603a5d4242e1cc1d7c35307d626204d61bd5 Mon Sep 17 00:00:00 2001 From: "jeanchristophe.mqt@gmail.com" Date: Sun, 31 Mar 2024 11:13:08 +0200 Subject: [PATCH] After thorough testing, some renaming and refactoring --- .../1.0.0/index.js | 50 ++++++++------- .../1.0.0/index.ts | 63 +++++++++---------- 2 files changed, 57 insertions(+), 56 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js index 187a609..aef2f8d 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.js @@ -116,7 +116,7 @@ var details = function () { return ({ ], }); }; exports.details = details; -var getFileInfoFromLookup = function (args, arr, arrHost, headers, fileName, renameType) { return __awaiter(void 0, void 0, void 0, function () { +var getFileInfoFromLookup = function (args, arrApp, fileName) { return __awaiter(void 0, void 0, void 0, function () { var fInfo, imdbId, lookupResponse; var _a, _b; return __generator(this, function (_c) { @@ -127,20 +127,20 @@ var getFileInfoFromLookup = function (args, arr, arrHost, headers, fileName, ren if (!(imdbId !== '')) return [3 /*break*/, 2]; return [4 /*yield*/, args.deps.axios({ method: 'get', - url: "".concat(arrHost, "/api/v3/").concat(arr === 'radarr' ? 'movie' : 'series', "/lookup?term=imdb:").concat(imdbId), - headers: headers, + url: "".concat(arrApp.host, "/api/v3/").concat(arrApp.name === 'radarr' ? 'movie' : 'series', "/lookup?term=imdb:").concat(imdbId), + headers: arrApp.headers, })]; case 1: lookupResponse = _c.sent(); - fInfo = renameType.delegates.getFileInfoFromLookupResponse(lookupResponse, fileName); - args.jobLog("".concat(renameType.content, " ").concat(fInfo.id !== '-1' ? "'".concat(fInfo.id, "' found") : 'not found') + fInfo = arrApp.delegates.getFileInfoFromLookupResponse(lookupResponse, fileName); + args.jobLog("".concat(arrApp.content, " ").concat(fInfo.id !== '-1' ? "'".concat(fInfo.id, "' found") : 'not found') + " for imdb '".concat(imdbId, "'")); _c.label = 2; case 2: return [2 /*return*/, fInfo]; } }); }); }; -var getFileInfoFromParse = function (args, arr, arrHost, headers, fileName, renameType) { return __awaiter(void 0, void 0, void 0, function () { +var getFileInfoFromParse = function (args, arrApp, fileName) { return __awaiter(void 0, void 0, void 0, function () { var fInfo, parseResponse; return __generator(this, function (_a) { switch (_a.label) { @@ -148,33 +148,33 @@ var getFileInfoFromParse = function (args, arr, arrHost, headers, fileName, rena fInfo = { id: '-1' }; return [4 /*yield*/, args.deps.axios({ method: 'get', - url: "".concat(arrHost, "/api/v3/parse?title=").concat(encodeURIComponent((0, fileUtils_1.getFileName)(fileName))), - headers: headers, + url: "".concat(arrApp.host, "/api/v3/parse?title=").concat(encodeURIComponent((0, fileUtils_1.getFileName)(fileName))), + headers: arrApp.headers, })]; case 1: parseResponse = _a.sent(); - fInfo = renameType.delegates.getFileInfoFromParseResponse(parseResponse); - args.jobLog("".concat(renameType.content, " ").concat(fInfo.id !== '-1' ? "'".concat(fInfo.id, "' found") : 'not found') + fInfo = arrApp.delegates.getFileInfoFromParseResponse(parseResponse); + args.jobLog("".concat(arrApp.content, " ").concat(fInfo.id !== '-1' ? "'".concat(fInfo.id, "' found") : 'not found') + " for '".concat((0, fileUtils_1.getFileName)(fileName), "'")); return [2 /*return*/, fInfo]; } }); }); }; -var getFileInfo = function (args, arr, arrHost, headers, fileName, renameType) { return __awaiter(void 0, void 0, void 0, function () { +var getFileInfo = function (args, arrApp, fileName) { return __awaiter(void 0, void 0, void 0, function () { var fInfo; return __generator(this, function (_a) { switch (_a.label) { - case 0: return [4 /*yield*/, getFileInfoFromLookup(args, arr, arrHost, headers, fileName, renameType)]; + case 0: return [4 /*yield*/, getFileInfoFromLookup(args, arrApp, fileName)]; case 1: fInfo = _a.sent(); - return [2 /*return*/, (fInfo.id === '-1' || (arr === 'sonarr' && (fInfo.seasonNumber === -1 || fInfo.episodeNumber === -1))) - ? getFileInfoFromParse(args, arr, arrHost, headers, fileName, renameType) + return [2 /*return*/, (fInfo.id === '-1' || (arrApp.name === 'sonarr' && (fInfo.seasonNumber === -1 || fInfo.episodeNumber === -1))) + ? getFileInfoFromParse(args, arrApp, fileName) : fInfo]; } }); }); }; var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { - var lib, newPath, isSuccessful, arr, arr_host, arrHost, originalFileName, currentFileName, headers, renameType, fInfo, previewRenameRequestResult, fileToRename; + var lib, newPath, isSuccessful, arr, arr_host, arrHost, originalFileName, currentFileName, headers, arrApp, fInfo, previewRenameRequestResult, fileToRename; var _a, _b, _c, _d; return __generator(this, function (_e) { switch (_e.label) { @@ -194,9 +194,11 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function 'X-Api-Key': String(args.inputs.arr_api_key), Accept: 'application/json', }; - renameType = arr === 'radarr' + arrApp = arr === 'radarr' ? { - appName: 'Radarr', + name: arr, + host: arrHost, + headers: headers, content: 'Movie', delegates: { getFileInfoFromLookupResponse: function (lookupResponse) { var _a, _b, _c; return ({ id: String((_c = (_b = (_a = lookupResponse === null || lookupResponse === void 0 ? void 0 : lookupResponse.data) === null || _a === void 0 ? void 0 : _a.at(0)) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : -1) }); }, @@ -206,7 +208,9 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function }, } : { - appName: 'Sonarr', + name: arr, + host: arrHost, + headers: headers, content: 'Serie', delegates: { getFileInfoFromLookupResponse: function (lookupResponse, fileName) { @@ -237,12 +241,12 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function }, }; args.jobLog('Going to apply new name'); - args.jobLog("Renaming ".concat(renameType.appName, "...")); - return [4 /*yield*/, getFileInfo(args, arr, arrHost, headers, originalFileName, renameType)]; + args.jobLog("Renaming ".concat(arrApp.name, "...")); + return [4 /*yield*/, getFileInfo(args, arrApp, originalFileName)]; case 1: fInfo = _e.sent(); if (!(fInfo.id === '-1' && currentFileName !== originalFileName)) return [3 /*break*/, 3]; - return [4 /*yield*/, getFileInfo(args, arr, arrHost, headers, currentFileName, renameType)]; + return [4 /*yield*/, getFileInfo(args, arrApp, currentFileName)]; case 2: fInfo = _e.sent(); _e.label = 3; @@ -250,12 +254,12 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function if (!(fInfo.id !== '-1')) return [3 /*break*/, 7]; return [4 /*yield*/, args.deps.axios({ method: 'get', - url: renameType.delegates.buildPreviewRenameResquestUrl(fInfo), + url: arrApp.delegates.buildPreviewRenameResquestUrl(fInfo), headers: headers, })]; case 4: previewRenameRequestResult = _e.sent(); - fileToRename = renameType.delegates + fileToRename = arrApp.delegates .getFileToRenameFromPreviewRenameResponse(previewRenameRequestResult, fInfo); if (!(fileToRename !== undefined)) return [3 /*break*/, 6]; newPath = "".concat((0, fileUtils_1.getFileAbosluteDir)(currentFileName), "/").concat((0, fileUtils_1.getFileName)(fileToRename.newPath), ".").concat((0, fileUtils_1.getContainer)(fileToRename.newPath)); diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.ts index 0a44294..fd3531a 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/applyRadarrOrSonarrNamingPolicy/1.0.0/index.ts @@ -102,8 +102,10 @@ interface IFileToRename { interface IPreviewRenameResponse { data: IFileToRename[] } -interface IRenameType { - appName: string, +interface IArrApp { + name: string, + host: string, + headers: IHTTPHeaders, content: string, delegates: { getFileInfoFromLookupResponse: @@ -119,11 +121,8 @@ interface IRenameType { const getFileInfoFromLookup = async ( args: IpluginInputArgs, - arr: string, - arrHost: string, - headers: IHTTPHeaders, + arrApp: IArrApp, fileName: string, - renameType: IRenameType, ) : Promise => { let fInfo: IFileInfo = { id: '-1' }; @@ -131,11 +130,11 @@ const getFileInfoFromLookup = async ( if (imdbId !== '') { const lookupResponse: ILookupResponse = await args.deps.axios({ method: 'get', - url: `${arrHost}/api/v3/${arr === 'radarr' ? 'movie' : 'series'}/lookup?term=imdb:${imdbId}`, - headers, + url: `${arrApp.host}/api/v3/${arrApp.name === 'radarr' ? 'movie' : 'series'}/lookup?term=imdb:${imdbId}`, + headers: arrApp.headers, }); - fInfo = renameType.delegates.getFileInfoFromLookupResponse(lookupResponse, fileName); - args.jobLog(`${renameType.content} ${fInfo.id !== '-1' ? `'${fInfo.id}' found` : 'not found'}` + fInfo = arrApp.delegates.getFileInfoFromLookupResponse(lookupResponse, fileName); + args.jobLog(`${arrApp.content} ${fInfo.id !== '-1' ? `'${fInfo.id}' found` : 'not found'}` + ` for imdb '${imdbId}'`); } return fInfo; @@ -143,37 +142,31 @@ const getFileInfoFromLookup = async ( const getFileInfoFromParse = async ( args: IpluginInputArgs, - arr: string, - arrHost: string, - headers: IHTTPHeaders, + arrApp: IArrApp, fileName: string, - renameType: IRenameType, ) : Promise => { let fInfo: IFileInfo = { id: '-1' }; const parseResponse: IParseResponse = await args.deps.axios({ method: 'get', - url: `${arrHost}/api/v3/parse?title=${encodeURIComponent(getFileName(fileName))}`, - headers, + url: `${arrApp.host}/api/v3/parse?title=${encodeURIComponent(getFileName(fileName))}`, + headers: arrApp.headers, }); - fInfo = renameType.delegates.getFileInfoFromParseResponse(parseResponse); - args.jobLog(`${renameType.content} ${fInfo.id !== '-1' ? `'${fInfo.id}' found` : 'not found'}` + fInfo = arrApp.delegates.getFileInfoFromParseResponse(parseResponse); + args.jobLog(`${arrApp.content} ${fInfo.id !== '-1' ? `'${fInfo.id}' found` : 'not found'}` + ` for '${getFileName(fileName)}'`); return fInfo; }; const getFileInfo = async ( args: IpluginInputArgs, - arr: string, - arrHost: string, - headers: IHTTPHeaders, + arrApp: IArrApp, fileName: string, - renameType: IRenameType, ) : Promise => { - const fInfo = await getFileInfoFromLookup(args, arr, arrHost, headers, fileName, renameType); - return (fInfo.id === '-1' || (arr === 'sonarr' && (fInfo.seasonNumber === -1 || fInfo.episodeNumber === -1))) - ? getFileInfoFromParse(args, arr, arrHost, headers, fileName, renameType) + const fInfo = await getFileInfoFromLookup(args, arrApp, fileName); + return (fInfo.id === '-1' || (arrApp.name === 'sonarr' && (fInfo.seasonNumber === -1 || fInfo.episodeNumber === -1))) + ? getFileInfoFromParse(args, arrApp, fileName) : fInfo; }; @@ -195,9 +188,11 @@ const plugin = async (args: IpluginInputArgs): Promise => { Accept: 'application/json', }; - const renameType: IRenameType = arr === 'radarr' + const arrApp: IArrApp = arr === 'radarr' ? { - appName: 'Radarr', + name: arr, + host: arrHost, + headers, content: 'Movie', delegates: { getFileInfoFromLookupResponse: @@ -211,7 +206,9 @@ const plugin = async (args: IpluginInputArgs): Promise => { }, } : { - appName: 'Sonarr', + name: arr, + host: arrHost, + headers, content: 'Serie', delegates: { getFileInfoFromLookupResponse: @@ -242,13 +239,13 @@ const plugin = async (args: IpluginInputArgs): Promise => { }; args.jobLog('Going to apply new name'); - args.jobLog(`Renaming ${renameType.appName}...`); + args.jobLog(`Renaming ${arrApp.name}...`); // Retrieving movie or serie id, plus season and episode number for serie - let fInfo = await getFileInfo(args, arr, arrHost, headers, originalFileName, renameType); + let fInfo = await getFileInfo(args, arrApp, originalFileName); // Useful in some edge cases if (fInfo.id === '-1' && currentFileName !== originalFileName) { - fInfo = await getFileInfo(args, arr, arrHost, headers, currentFileName, renameType); + fInfo = await getFileInfo(args, arrApp, currentFileName); } // Checking that the file has been found @@ -256,10 +253,10 @@ const plugin = async (args: IpluginInputArgs): Promise => { // Using rename endpoint to get ids of all the files that need renaming const previewRenameRequestResult = await args.deps.axios({ method: 'get', - url: renameType.delegates.buildPreviewRenameResquestUrl(fInfo), + url: arrApp.delegates.buildPreviewRenameResquestUrl(fInfo), headers, }); - const fileToRename = renameType.delegates + const fileToRename = arrApp.delegates .getFileToRenameFromPreviewRenameResponse(previewRenameRequestResult, fInfo); // Only if there is a rename to execute