From 4be4bc7169b583a801b81cccad3e6940a4955ea4 Mon Sep 17 00:00:00 2001 From: "jeanchristophe.mqt@gmail.com" Date: Fri, 19 Jan 2024 16:41:36 +0100 Subject: [PATCH] Rename with radarr/sonarr Flow plugin now updates the file id --- .../1.0.0/index.js | 34 +++++++++++++------ .../1.0.0/index.ts | 25 ++++++++++---- 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/FlowPlugins/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.js b/FlowPlugins/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.js index cb731b0..426ba5b 100644 --- a/FlowPlugins/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.js +++ b/FlowPlugins/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.js @@ -96,7 +96,7 @@ var details = function () { return ({ }); }; exports.details = details; var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function () { - var lib, _a, arr, arr_api_key, arr_host, fileName, arrHost, headers, rename; + var lib, _a, arr, arr_api_key, arr_host, fileName, arrHost, headers, rename, existingPath, newPath, episodeNumber_1, newFileId; var _b, _c; return __generator(this, function (_d) { switch (_d.label) { @@ -113,12 +113,12 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function 'X-Api-Key': arr_api_key, Accept: 'application/json', }; - args.jobLog('Going to force rename'); rename = function (getId, getPreviewRenameResquestUrl, getRenameResquestData) { return __awaiter(void 0, void 0, void 0, function () { var parseRequestConfig, parseRequestResult, id, previewRenameRequestConfig, previewRenameRequestResult, renameRequestConfig; return __generator(this, function (_a) { switch (_a.label) { case 0: + args.jobLog('Going to force rename'); args.jobLog("Renaming ".concat(arr === 'radarr' ? 'Radarr' : 'Sonarr', "...")); parseRequestConfig = { method: 'get', @@ -151,12 +151,15 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function } }); }); }; + newPath = ''; if (!(arr === 'radarr')) return [3 /*break*/, 2]; return [4 /*yield*/, rename(function (parseRequestResult) { return parseRequestResult.data.movie.movieFile.movieId; }, function (id, parseRequestResult) { return "".concat(arrHost, "/api/v3/rename?movieId=").concat(id); }, function (id, previewRenameRequestResult) { + var movieFile = previewRenameRequestResult.data[0]; + (existingPath = movieFile.existingPath, newPath = movieFile.newPath); return { name: 'RenameFiles', movieId: id, - files: previewRenameRequestResult.data.map(function (movieFile) { return movieFile.movieFileId; }) + files: [movieFile.movieFileId] }; })]; case 1: @@ -164,11 +167,17 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function return [3 /*break*/, 5]; case 2: if (!(arr === 'sonarr')) return [3 /*break*/, 4]; - return [4 /*yield*/, rename(function (parseRequestResult) { return parseRequestResult.data.series.id; }, function (id, parseRequestResult) { return "".concat(arrHost, "/api/v3/rename?seriesId=").concat(id, "&seasonNumber=").concat(parseRequestResult.data.parsedEpisodeInfo.seasonNumber); }, function (id, previewRenameRequestResult) { + episodeNumber_1 = 0; + return [4 /*yield*/, rename(function (parseRequestResult) { return parseRequestResult.data.series.id; }, function (id, parseRequestResult) { + episodeNumber_1 = parseRequestResult.data.parsedEpisodeInfo.episodeNumbers[0]; + return "".concat(arrHost, "/api/v3/rename?seriesId=").concat(id, "&seasonNumber=").concat(parseRequestResult.data.parsedEpisodeInfo.seasonNumber); + }, function (id, previewRenameRequestResult) { + var episodeFile = previewRenameRequestResult.find(function (episFile) { return episFile.episodeNumbers[0] === episodeNumber_1; }); + (existingPath = episodeFile.existingPath, newPath = episodeFile.newPath); return { name: 'RenameFiles', seriesId: id, - files: previewRenameRequestResult.data.map(function (episodeFile) { return episodeFile.episodeFileId; }) + files: [episodeFile.episodeFileId] }; })]; case 3: @@ -177,11 +186,16 @@ var plugin = function (args) { return __awaiter(void 0, void 0, void 0, function case 4: args.jobLog('No arr specified in plugin inputs.'); _d.label = 5; - case 5: return [2 /*return*/, { - outputFileObj: args.inputFileObj, - outputNumber: 1, - variables: args.variables, - }]; + case 5: + newFileId = args.inputFileObj.replace(existingPath, newPath); + args.jobLog("New file iid ".concat(newFileId)); + return [2 /*return*/, { + outputFileObj: { + _id: newFileId + }, + outputNumber: 1, + variables: args.variables, + }]; } }); }); }; diff --git a/FlowPluginsTs/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.ts b/FlowPluginsTs/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.ts index d8d788c..69d472b 100644 --- a/FlowPluginsTs/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.ts +++ b/FlowPluginsTs/CommunityFlowPlugins/tools/forceFileRenameRadarrOrSonarr/1.0.0/index.ts @@ -80,13 +80,13 @@ const plugin = async (args: IpluginInputArgs): Promise => { Accept: 'application/json', }; - args.jobLog('Going to force rename'); - const rename = async ( getId: (parseRequestResult: any) => any, getPreviewRenameResquestUrl: (id: any, parseRequestResult: any) => any, getRenameResquestData: (id: any, previewRenameRequestResult: any) => any) : Promise => { + args.jobLog('Going to force rename'); + args.jobLog(`Renaming ${arr === 'radarr' ? 'Radarr' : 'Sonarr'}...`); // Using parse endpoint to get the movie/serie's id. @@ -118,27 +118,36 @@ const plugin = async (args: IpluginInputArgs): Promise => { args.jobLog(`✔ Renamed ${arr === 'radarr' ? 'movie' : 'serie'} ${id} in ${arr === 'radarr' ? 'Radarr' : 'Sonarr'}.`); }; + let existingPath, newPath = ''; if (arr === 'radarr') { await rename( (parseRequestResult) => parseRequestResult.data.movie.movieFile.movieId, (id, parseRequestResult) => `${arrHost}/api/v3/rename?movieId=${id}`, (id, previewRenameRequestResult) => { + const movieFile = previewRenameRequestResult.data[0]; + ({ existingPath, newPath } = movieFile); return { name: 'RenameFiles', movieId: id, - files: previewRenameRequestResult.data.map((movieFile: { movieFileId: any; }) => movieFile.movieFileId) + files: [movieFile.movieFileId] }; } ); } else if (arr === 'sonarr') { + let episodeNumber = 0; await rename( (parseRequestResult) => parseRequestResult.data.series.id, - (id, parseRequestResult) => `${arrHost}/api/v3/rename?seriesId=${id}&seasonNumber=${parseRequestResult.data.parsedEpisodeInfo.seasonNumber}`, + (id, parseRequestResult) => { + episodeNumber = parseRequestResult.data.parsedEpisodeInfo.episodeNumbers[0]; + return `${arrHost}/api/v3/rename?seriesId=${id}&seasonNumber=${parseRequestResult.data.parsedEpisodeInfo.seasonNumber}`; + }, (id, previewRenameRequestResult) => { + const episodeFile = previewRenameRequestResult.find((episFile: { episodeNumbers: number[]; }) => episFile.episodeNumbers[0] === episodeNumber); + ({ existingPath, newPath } = episodeFile); return { name: 'RenameFiles', seriesId: id, - files: previewRenameRequestResult.data.map((episodeFile: { episodeFileId: any; }) => episodeFile.episodeFileId) + files: [episodeFile.episodeFileId] }; } ); @@ -146,8 +155,12 @@ const plugin = async (args: IpluginInputArgs): Promise => { args.jobLog('No arr specified in plugin inputs.'); } + const newFileId = args.inputFileObj.replace(existingPath, newPath); + args.jobLog(`New file iid ${newFileId}`); return { - outputFileObj: args.inputFileObj, + outputFileObj: { + _id: newFileId + }, outputNumber: 1, variables: args.variables, };