Rollback temporary native-scan PoC hold #6

Merged
sascha merged 3 commits from rollback-poc-hold-20260912 into main 2026-09-12 21:44:45 +02:00
3 changed files with 4 additions and 38 deletions

View file

@ -353,7 +353,6 @@
"UseUnmappedPath": false,
"MoveMode": true,
"TimeOut": 900,
"PocHoldRelease": "The.Ritual.2017.German.DL.1080p.WEB.x264.iNTERNAL-BiGiNT",
"Color": ""
}
},

View file

@ -2,7 +2,7 @@
* @name Radarr - Trigger Manual Import
* @description Safely trigger Radarr ManualImport for exactly one processed file.
* @author FileFlows + Sascha
* @revision 12
* @revision 11
* @output Import erfolgreich
* @output Fehler
* @param {string} URL Radarr root URL and port
@ -11,12 +11,11 @@
* @param {bool} UseUnmappedPath Whether to Unmap the path
* @param {bool} MoveMode Import mode: true=move, false=copy
* @param {int} TimeOut Timeout in seconds (max 3600)
* @param {string} PocHoldRelease Exact release title to leave for an external native-scan proof
*/
import { Radarr } from 'Shared/Radarr';
function Script(URL, ApiKey, ImportPath, UseUnmappedPath, MoveMode, TimeOut, PocHoldRelease) {
function Script(URL, ApiKey, ImportPath, UseUnmappedPath, MoveMode, TimeOut) {
URL = (URL || Variables['Radarr.Url'] || Variables['Radarr.URI']).replace(/\/+$/g, '');
ApiKey = ApiKey || Variables['Radarr.ApiKey'];
const currentFile = Variables['file.FullName'] || Variables.file?.FullName || '';
@ -54,11 +53,7 @@ function Script(URL, ApiKey, ImportPath, UseUnmappedPath, MoveMode, TimeOut, Poc
const searchPatterns = [folderPattern, filePattern]
.filter(Boolean)
.filter((value, index, values) => values.indexOf(value) === index);
const pocHold = normalizeReleaseTitle(PocHoldRelease || '');
if (pocHold && searchPatterns.some(pattern => normalizeReleaseTitle(pattern) === pocHold)) {
Logger.ILog(`PoC hold: leaving '${exactImportPath}' on NVMe for external native Arr scan.`);
return 1;
}
let movieId = Variables['Radarr.movieId'] ?? null;
for (const pattern of searchPatterns) {
if (!movieId) {

View file

@ -61,8 +61,7 @@ const result = context.__exports.Script(
scenario.scopeRoot,
false,
true,
300,
scenario.pocHoldRelease || ''
300
);
process.stdout.write(JSON.stringify({result, calls}));
"""
@ -263,33 +262,6 @@ class RadarrImportSafetyTests(unittest.TestCase):
self.assertEqual(result["result"], 1)
command = next(call for call in result["calls"] if call["type"] == "command")
self.assertEqual(command["body"]["files"][0]["movieId"], 7331)
def test_poc_hold_leaves_exact_release_for_external_native_scan(self):
release = "The.Ritual.2017.German.DL.1080p.WEB.x264.iNTERNAL-BiGiNT"
exact = f"/tdarr/converted/video/{release}/{release}.mkv"
result = run_script(
{
"releaseTitle": release,
"exactPath": exact,
"scopeRoot": "/tdarr/converted/video/",
"pocHoldRelease": release,
"queueResponse": {"records": [{"title": release, "movieId": 6676}]},
"historyResponse": {
"records": [
{
"sourceTitle": release,
"movieId": 6676,
"downloadId": "poc-nzo-id",
"eventType": "grabbed",
}
]
},
"candidates": [],
}
)
self.assertEqual(result["result"], 1)
commands = [call for call in result["calls"] if call["type"] == "command"]
self.assertEqual(commands, [])
if __name__ == "__main__":