TEST
IO
Node-Detail
wirkt minified
Job Execute ExtendScript In Premiere Action V2
helmut4_backup_192.168.178.209_2026-10-18 20_33_12 · Prüfe Projekt nach "RSS-Offline" Assets
Node-Informationen
- Stream
- Prüfe Projekt nach "RSS-Offline" Assets
- Klasse
- nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2
- UUID
- bfe2447d-6d62-4552-92e3-3f4e8c2e86b2
- Operator-ID
- 29
- Event
- CUSTOM_IO
Properties
{
"extendScript": "try{(function(){function jsonStringify(obj) { if (obj === null) return \"null\"; if (typeof obj === \"string\") return '\"' + obj.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'; if (typeof obj === \"number\" || typeof obj === \"boolean\") return obj.toString(); if (obj instanceof Array) { var items = []; for (var i = 0; i < obj.length; i++) { items.push(jsonStringify(obj[i])); } return \"[\" + items.join(\",\") + \"]\"; } if (typeof obj === \"object\") { var props = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { props.push(jsonStringify(key) + \":\" + jsonStringify(obj[key])); } } return \"{\" + props.join(\",\") + \"}\"; } return 'null'; }function collectAllMediaItems(folder, list) { for (var i = 0; i < folder.children.numItems; i++) { var item = folder.children[i]; if (item.type === ProjectItemType.BIN) { collectAllMediaItems(item, list); } else { if (item.getMediaPath && item.getMediaPath() !== \"\") { list.push(item); } } }}function checkAssetValidation(mediassets, allowedPaths) { var invalidAssets = []; function isPathAllowed(path) { for (var i = 0; i < allowedPaths.length; i++) { if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) { return true; } } return false; } for (var i = 0; i < mediassets.length; i++) { if (!isPathAllowed(mediassets[i].getMediaPath())) { invalidAssets.push(mediassets[i]); } } return invalidAssets;}function getFilenameFromPath(fullPath) { var file = new File(fullPath); return file.name;}function copyFile(srcPath, destPath, overwrite, assetname) { var src = new File(srcPath); var dest = new File(destPath); var casset = { name: assetname, src: src.fsName, dest: dest.fsName, fcopy: false, finfo: '-' }; if (!src.exists) { casset.finfo = \"Quelldatei existiert nicht\"; return casset; } if (dest.exists && !overwrite) { casset.finfo= \"Zieldatei existiert bereits\"; return casset; } if (dest.exists && overwrite) { dest.remove(); } var result = src.copy(dest.fsName); if (result) { casset.fcopy = true; casset.finfo = \"Datei wurde kopiert\"; return casset; } else { casset.finfo = \"Fehler beim Kopieren\"; return casset; }}function copyAllBadAssets(assets){ var sep = (typeof Folder !== \"undefined\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).parent.parent; var destPath = projectFolder.fullName; destPath += sep + \"Medienimporte\"; var destFolder = new Folder(destPath); if (!destFolder.exists) destFolder.create(); var linkPath = projectFolder.fullName + sep + \"Asset_Link_Jobs\"; var linkFolder = new Folder(linkPath); if (!linkFolder.exists) linkFolder.create(); var srcFile = ''; var destFile = ''; var tasksList = []; var missingList = []; for (var j = 0; j < assets.length; j++) { srcFile = assets[j].getMediaPath(); destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath()); var copyresult = copyFile(srcFile, destFile, true, assets[j].name ); if (copyresult.fcopy) { var linkFile = new File(linkFolder.fsName + sep + copyresult.name + \".txt\");linkFile.encoding=\"UTF-8\";if (linkFile.open(\"w\")) { linkFile.write(jsonStringify(copyresult)); linkFile.close(); } else { alert(\"Konnte Asset_Link Job nicht schreiben: \" + linkFile.fsName); } tasksList.push(copyresult); } else { missingList.push(copyresult); } } return {tasksList: tasksList, missingList: missingList };}function logCassetListToProjectFolder(cassets, extraname, showOutput){ if (!app.project.path) { alert(\"Projekt wurde noch nicht gespeichert.\"); return; } var projectFolder = new Folder(app.project.path).parent; var now = new Date(); function pad(n) { return (n < 10 ? \"0\" : \"\") + n; } var timestamp = now.getFullYear() + \"-\" + pad(now.getMonth() + 1) + \"-\" + pad(now.getDate()) + \"_\" + pad(now.getHours()) + \"-\" + pad(now.getMinutes()) + \"-\" + pad(now.getSeconds()); var logfile = new File(projectFolder.fullName + \"/asset_log_\" + extraname + timestamp + \".txt\"); if (logfile.open(\"w\")) { logfile.writeln(\"Asset-Log \" + now.toLocaleString()); logfile.writeln(\"=========================================================\\n\"); for (var i = 0; i < cassets.length; i++) { var a = cassets[i]; logfile.writeln(\" Asset: \" + a.name); logfile.writeln(\" Quelle: \" + a.src); logfile.writeln(\" Ziel: \" + a.dest); if (a.fcopy) { logfile.writeln(\" Status Kopieren: Erfolgreich kopiert\"); } else { logfile.writeln(\" Status Kopieren: Fehler beim Kopieren\"); } logfile.writeln(\" Info: \" + a.finfo); logfile.writeln(\"\"); } logfile.close(); if (showOutput) { logfile.execute(); } } else { alert(\"Konnte Log-Datei nicht schreiben.\"); }}var projectItems = [];var jdata = {\"count\": 0};function doWorkflow(){collectAllMediaItems(app.project.rootItem, projectItems);if (projectItems.length > 0){ var allowedPaths = [\"T:\\\\Produktion\\\\RSS\", \"T:/Produktion/RSS\", \"/Produktion/RSS/LoRes/\", \"killphil/Premiere/Material/\",\"\\\\\\\\l-fslores1.adin.mdr.de\\\\rss\",\"\\\\\\\\l-fslores.adin.mdr.de\\\\RSS\\\\\"]; var badAssets = checkAssetValidation(projectItems, allowedPaths); var badlist = ''; for (var j = 0; j < badAssets.length; j++) { badlist = badlist + badAssets[j].name + \", \"; } if (badAssets.length > 0) { var confirmResult = confirm(\"Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:\"+'\\n\\n'+badlist+\"Soll ich eine Korrektur starten?\", true, \"Ungltige Asset-Pfade\"); if (confirmResult) { var result = copyAllBadAssets(badAssets); logCassetListToProjectFolder(result.tasksList,\"\", false); var alldata = {jdata: result.tasksList, count: result.tasksList.length}; jdata = jsonStringify(alldata); if (result.tasksList.length != badAssets.length) { alert(\"Nicht alle ungltigen Assets konnten korrigiert werden. Bitte prfen Sie die Log-Datei.\"); logCassetListToProjectFolder(result.missingList, \"missing_\", true); } } } else { alert(\"Alle Asset-Pfade sind gueltig und liegen zentral verfuegbar.\"); } }return jdata;}doWorkflow();jdata;})()}catch(e){alert(\"FEHLER: \"+e.toString());}",
"nodeUUID": "bfe2447d-6d62-4552-92e3-3f4e8c2e86b2"
}Skript
Original: 1 Zeilen · 5849 Zeichen
Formatiert: 210 Zeilen
Dieses Skript wirkt minified.
Die formatierte Ansicht wird nur zur besseren Lesbarkeit erzeugt. Das gespeicherte Original bleibt unverändert.
Formatierung ergänzt Einrückungen und Zeilenumbrüche. Ursprüngliche Variablennamen und Kommentare lassen sich aus minifiziertem Code nicht wiederherstellen. ExtendScript-Direktiven und E4X werden bei der Formatierung berücksichtigt.
Original
try{(function(){function jsonStringify(obj) { if (obj === null) return "null"; if (typeof obj === "string") return '"' + obj.replace(/\\/g, '\\\\').replace(/"/g, '\\"') + '"'; if (typeof obj === "number" || typeof obj === "boolean") return obj.toString(); if (obj instanceof Array) { var items = []; for (var i = 0; i < obj.length; i++) { items.push(jsonStringify(obj[i])); } return "[" + items.join(",") + "]"; } if (typeof obj === "object") { var props = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { props.push(jsonStringify(key) + ":" + jsonStringify(obj[key])); } } return "{" + props.join(",") + "}"; } return 'null'; }function collectAllMediaItems(folder, list) { for (var i = 0; i < folder.children.numItems; i++) { var item = folder.children[i]; if (item.type === ProjectItemType.BIN) { collectAllMediaItems(item, list); } else { if (item.getMediaPath && item.getMediaPath() !== "") { list.push(item); } } }}function checkAssetValidation(mediassets, allowedPaths) { var invalidAssets = []; function isPathAllowed(path) { for (var i = 0; i < allowedPaths.length; i++) { if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) { return true; } } return false; } for (var i = 0; i < mediassets.length; i++) { if (!isPathAllowed(mediassets[i].getMediaPath())) { invalidAssets.push(mediassets[i]); } } return invalidAssets;}function getFilenameFromPath(fullPath) { var file = new File(fullPath); return file.name;}function copyFile(srcPath, destPath, overwrite, assetname) { var src = new File(srcPath); var dest = new File(destPath); var casset = { name: assetname, src: src.fsName, dest: dest.fsName, fcopy: false, finfo: '-' }; if (!src.exists) { casset.finfo = "Quelldatei existiert nicht"; return casset; } if (dest.exists && !overwrite) { casset.finfo= "Zieldatei existiert bereits"; return casset; } if (dest.exists && overwrite) { dest.remove(); } var result = src.copy(dest.fsName); if (result) { casset.fcopy = true; casset.finfo = "Datei wurde kopiert"; return casset; } else { casset.finfo = "Fehler beim Kopieren"; return casset; }}function copyAllBadAssets(assets){ var sep = (typeof Folder !== "undefined" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).parent.parent; var destPath = projectFolder.fullName; destPath += sep + "Medienimporte"; var destFolder = new Folder(destPath); if (!destFolder.exists) destFolder.create(); var linkPath = projectFolder.fullName + sep + "Asset_Link_Jobs"; var linkFolder = new Folder(linkPath); if (!linkFolder.exists) linkFolder.create(); var srcFile = ''; var destFile = ''; var tasksList = []; var missingList = []; for (var j = 0; j < assets.length; j++) { srcFile = assets[j].getMediaPath(); destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath()); var copyresult = copyFile(srcFile, destFile, true, assets[j].name ); if (copyresult.fcopy) { var linkFile = new File(linkFolder.fsName + sep + copyresult.name + ".txt");linkFile.encoding="UTF-8";if (linkFile.open("w")) { linkFile.write(jsonStringify(copyresult)); linkFile.close(); } else { alert("Konnte Asset_Link Job nicht schreiben: " + linkFile.fsName); } tasksList.push(copyresult); } else { missingList.push(copyresult); } } return {tasksList: tasksList, missingList: missingList };}function logCassetListToProjectFolder(cassets, extraname, showOutput){ if (!app.project.path) { alert("Projekt wurde noch nicht gespeichert."); return; } var projectFolder = new Folder(app.project.path).parent; var now = new Date(); function pad(n) { return (n < 10 ? "0" : "") + n; } var timestamp = now.getFullYear() + "-" + pad(now.getMonth() + 1) + "-" + pad(now.getDate()) + "_" + pad(now.getHours()) + "-" + pad(now.getMinutes()) + "-" + pad(now.getSeconds()); var logfile = new File(projectFolder.fullName + "/asset_log_" + extraname + timestamp + ".txt"); if (logfile.open("w")) { logfile.writeln("Asset-Log " + now.toLocaleString()); logfile.writeln("=========================================================\n"); for (var i = 0; i < cassets.length; i++) { var a = cassets[i]; logfile.writeln(" Asset: " + a.name); logfile.writeln(" Quelle: " + a.src); logfile.writeln(" Ziel: " + a.dest); if (a.fcopy) { logfile.writeln(" Status Kopieren: Erfolgreich kopiert"); } else { logfile.writeln(" Status Kopieren: Fehler beim Kopieren"); } logfile.writeln(" Info: " + a.finfo); logfile.writeln(""); } logfile.close(); if (showOutput) { logfile.execute(); } } else { alert("Konnte Log-Datei nicht schreiben."); }}var projectItems = [];var jdata = {"count": 0};function doWorkflow(){collectAllMediaItems(app.project.rootItem, projectItems);if (projectItems.length > 0){ var allowedPaths = ["T:\\Produktion\\RSS", "T:/Produktion/RSS", "/Produktion/RSS/LoRes/", "killphil/Premiere/Material/","\\\\l-fslores1.adin.mdr.de\\rss","\\\\l-fslores.adin.mdr.de\\RSS\\"]; var badAssets = checkAssetValidation(projectItems, allowedPaths); var badlist = ''; for (var j = 0; j < badAssets.length; j++) { badlist = badlist + badAssets[j].name + ", "; } if (badAssets.length > 0) { var confirmResult = confirm("Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:"+'\n\n'+badlist+"Soll ich eine Korrektur starten?", true, "Ungltige Asset-Pfade"); if (confirmResult) { var result = copyAllBadAssets(badAssets); logCassetListToProjectFolder(result.tasksList,"", false); var alldata = {jdata: result.tasksList, count: result.tasksList.length}; jdata = jsonStringify(alldata); if (result.tasksList.length != badAssets.length) { alert("Nicht alle ungltigen Assets konnten korrigiert werden. Bitte prfen Sie die Log-Datei."); logCassetListToProjectFolder(result.missingList, "missing_", true); } } } else { alert("Alle Asset-Pfade sind gueltig und liegen zentral verfuegbar."); } }return jdata;}doWorkflow();jdata;})()}catch(e){alert("FEHLER: "+e.toString());}
Formatiert
try {
(function() {
function jsonStringify(obj) {
if (obj === null) return "null";
if (typeof obj === "string") return '"' + obj.replace(/\\/g, '\\\\').replace(/"/g, '\\"') + '"';
if (typeof obj === "number" || typeof obj === "boolean") return obj.toString();
if (obj instanceof Array) {
var items = [];
for (var i = 0; i < obj.length; i++) {
items.push(jsonStringify(obj[i]));
}
return "[" + items.join(",") + "]";
}
if (typeof obj === "object") {
var props = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
props.push(jsonStringify(key) + ":" + jsonStringify(obj[key]));
}
}
return "{" + props.join(",") + "}";
}
return 'null';
}
function collectAllMediaItems(folder, list) {
for (var i = 0; i < folder.children.numItems; i++) {
var item = folder.children[i];
if (item.type === ProjectItemType.BIN) {
collectAllMediaItems(item, list);
} else {
if (item.getMediaPath && item.getMediaPath() !== "") {
list.push(item);
}
}
}
}
function checkAssetValidation(mediassets, allowedPaths) {
var invalidAssets = [];
function isPathAllowed(path) {
for (var i = 0; i < allowedPaths.length; i++) {
if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) {
return true;
}
}
return false;
}
for (var i = 0; i < mediassets.length; i++) {
if (!isPathAllowed(mediassets[i].getMediaPath())) {
invalidAssets.push(mediassets[i]);
}
}
return invalidAssets;
}
function getFilenameFromPath(fullPath) {
var file = new File(fullPath);
return file.name;
}
function copyFile(srcPath, destPath, overwrite, assetname) {
var src = new File(srcPath);
var dest = new File(destPath);
var casset = {
name: assetname,
src: src.fsName,
dest: dest.fsName,
fcopy: false,
finfo: '-'
};
if (!src.exists) {
casset.finfo = "Quelldatei existiert nicht";
return casset;
}
if (dest.exists && !overwrite) {
casset.finfo = "Zieldatei existiert bereits";
return casset;
}
if (dest.exists && overwrite) {
dest.remove();
}
var result = src.copy(dest.fsName);
if (result) {
casset.fcopy = true;
casset.finfo = "Datei wurde kopiert";
return casset;
} else {
casset.finfo = "Fehler beim Kopieren";
return casset;
}
}
function copyAllBadAssets(assets) {
var sep = (typeof Folder !== "undefined" && Folder.separator) ? Folder.separator : '/';
var projectFolder = new Folder(app.project.path).parent.parent;
var destPath = projectFolder.fullName;
destPath += sep + "Medienimporte";
var destFolder = new Folder(destPath);
if (!destFolder.exists) destFolder.create();
var linkPath = projectFolder.fullName + sep + "Asset_Link_Jobs";
var linkFolder = new Folder(linkPath);
if (!linkFolder.exists) linkFolder.create();
var srcFile = '';
var destFile = '';
var tasksList = [];
var missingList = [];
for (var j = 0; j < assets.length; j++) {
srcFile = assets[j].getMediaPath();
destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath());
var copyresult = copyFile(srcFile, destFile, true, assets[j].name);
if (copyresult.fcopy) {
var linkFile = new File(linkFolder.fsName + sep + copyresult.name + ".txt");
linkFile.encoding = "UTF-8";
if (linkFile.open("w")) {
linkFile.write(jsonStringify(copyresult));
linkFile.close();
} else {
alert("Konnte Asset_Link Job nicht schreiben: " + linkFile.fsName);
}
tasksList.push(copyresult);
} else {
missingList.push(copyresult);
}
}
return {
tasksList: tasksList,
missingList: missingList
};
}
function logCassetListToProjectFolder(cassets, extraname, showOutput) {
if (!app.project.path) {
alert("Projekt wurde noch nicht gespeichert.");
return;
}
var projectFolder = new Folder(app.project.path).parent;
var now = new Date();
function pad(n) {
return (n < 10 ? "0" : "") + n;
}
var timestamp = now.getFullYear() + "-" + pad(now.getMonth() + 1) + "-" + pad(now.getDate()) + "_" + pad(now.getHours()) + "-" + pad(now.getMinutes()) + "-" + pad(now.getSeconds());
var logfile = new File(projectFolder.fullName + "/asset_log_" + extraname + timestamp + ".txt");
if (logfile.open("w")) {
logfile.writeln("Asset-Log " + now.toLocaleString());
logfile.writeln("=========================================================\n");
for (var i = 0; i < cassets.length; i++) {
var a = cassets[i];
logfile.writeln(" Asset: " + a.name);
logfile.writeln(" Quelle: " + a.src);
logfile.writeln(" Ziel: " + a.dest);
if (a.fcopy) {
logfile.writeln(" Status Kopieren: Erfolgreich kopiert");
} else {
logfile.writeln(" Status Kopieren: Fehler beim Kopieren");
}
logfile.writeln(" Info: " + a.finfo);
logfile.writeln("");
}
logfile.close();
if (showOutput) {
logfile.execute();
}
} else {
alert("Konnte Log-Datei nicht schreiben.");
}
}
var projectItems = [];
var jdata = {
"count": 0
};
function doWorkflow() {
collectAllMediaItems(app.project.rootItem, projectItems);
if (projectItems.length > 0) {
var allowedPaths = ["T:\\Produktion\\RSS", "T:/Produktion/RSS", "/Produktion/RSS/LoRes/", "killphil/Premiere/Material/", "\\\\l-fslores1.adin.mdr.de\\rss", "\\\\l-fslores.adin.mdr.de\\RSS\\"];
var badAssets = checkAssetValidation(projectItems, allowedPaths);
var badlist = '';
for (var j = 0; j < badAssets.length; j++) {
badlist = badlist + badAssets[j].name + ", ";
}
if (badAssets.length > 0) {
var confirmResult = confirm("Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:" + '\n\n' + badlist + "Soll ich eine Korrektur starten?", true, "Ungltige Asset-Pfade");
if (confirmResult) {
var result = copyAllBadAssets(badAssets);
logCassetListToProjectFolder(result.tasksList, "", false);
var alldata = {
jdata: result.tasksList,
count: result.tasksList.length
};
jdata = jsonStringify(alldata);
if (result.tasksList.length != badAssets.length) {
alert("Nicht alle ungltigen Assets konnten korrigiert werden. Bitte prfen Sie die Log-Datei.");
logCassetListToProjectFolder(result.missingList, "missing_", true);
}
}
} else {
alert("Alle Asset-Pfade sind gueltig und liegen zentral verfuegbar.");
}
}
return jdata;
}
doWorkflow();
jdata;
})()
} catch (e) {
alert("FEHLER: " + e.toString());
}
Rohdaten
{
"class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
"deprecated": false,
"properties": {
"extendScript": "try{(function(){function jsonStringify(obj) { if (obj === null) return \"null\"; if (typeof obj === \"string\") return '\"' + obj.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"') + '\"'; if (typeof obj === \"number\" || typeof obj === \"boolean\") return obj.toString(); if (obj instanceof Array) { var items = []; for (var i = 0; i < obj.length; i++) { items.push(jsonStringify(obj[i])); } return \"[\" + items.join(\",\") + \"]\"; } if (typeof obj === \"object\") { var props = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { props.push(jsonStringify(key) + \":\" + jsonStringify(obj[key])); } } return \"{\" + props.join(\",\") + \"}\"; } return 'null'; }function collectAllMediaItems(folder, list) { for (var i = 0; i < folder.children.numItems; i++) { var item = folder.children[i]; if (item.type === ProjectItemType.BIN) { collectAllMediaItems(item, list); } else { if (item.getMediaPath && item.getMediaPath() !== \"\") { list.push(item); } } }}function checkAssetValidation(mediassets, allowedPaths) { var invalidAssets = []; function isPathAllowed(path) { for (var i = 0; i < allowedPaths.length; i++) { if (path.toLowerCase().indexOf(allowedPaths[i].toLowerCase()) !== -1) { return true; } } return false; } for (var i = 0; i < mediassets.length; i++) { if (!isPathAllowed(mediassets[i].getMediaPath())) { invalidAssets.push(mediassets[i]); } } return invalidAssets;}function getFilenameFromPath(fullPath) { var file = new File(fullPath); return file.name;}function copyFile(srcPath, destPath, overwrite, assetname) { var src = new File(srcPath); var dest = new File(destPath); var casset = { name: assetname, src: src.fsName, dest: dest.fsName, fcopy: false, finfo: '-' }; if (!src.exists) { casset.finfo = \"Quelldatei existiert nicht\"; return casset; } if (dest.exists && !overwrite) { casset.finfo= \"Zieldatei existiert bereits\"; return casset; } if (dest.exists && overwrite) { dest.remove(); } var result = src.copy(dest.fsName); if (result) { casset.fcopy = true; casset.finfo = \"Datei wurde kopiert\"; return casset; } else { casset.finfo = \"Fehler beim Kopieren\"; return casset; }}function copyAllBadAssets(assets){ var sep = (typeof Folder !== \"undefined\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).parent.parent; var destPath = projectFolder.fullName; destPath += sep + \"Medienimporte\"; var destFolder = new Folder(destPath); if (!destFolder.exists) destFolder.create(); var linkPath = projectFolder.fullName + sep + \"Asset_Link_Jobs\"; var linkFolder = new Folder(linkPath); if (!linkFolder.exists) linkFolder.create(); var srcFile = ''; var destFile = ''; var tasksList = []; var missingList = []; for (var j = 0; j < assets.length; j++) { srcFile = assets[j].getMediaPath(); destFile = destFolder.fsName + sep + getFilenameFromPath(assets[j].getMediaPath()); var copyresult = copyFile(srcFile, destFile, true, assets[j].name ); if (copyresult.fcopy) { var linkFile = new File(linkFolder.fsName + sep + copyresult.name + \".txt\");linkFile.encoding=\"UTF-8\";if (linkFile.open(\"w\")) { linkFile.write(jsonStringify(copyresult)); linkFile.close(); } else { alert(\"Konnte Asset_Link Job nicht schreiben: \" + linkFile.fsName); } tasksList.push(copyresult); } else { missingList.push(copyresult); } } return {tasksList: tasksList, missingList: missingList };}function logCassetListToProjectFolder(cassets, extraname, showOutput){ if (!app.project.path) { alert(\"Projekt wurde noch nicht gespeichert.\"); return; } var projectFolder = new Folder(app.project.path).parent; var now = new Date(); function pad(n) { return (n < 10 ? \"0\" : \"\") + n; } var timestamp = now.getFullYear() + \"-\" + pad(now.getMonth() + 1) + \"-\" + pad(now.getDate()) + \"_\" + pad(now.getHours()) + \"-\" + pad(now.getMinutes()) + \"-\" + pad(now.getSeconds()); var logfile = new File(projectFolder.fullName + \"/asset_log_\" + extraname + timestamp + \".txt\"); if (logfile.open(\"w\")) { logfile.writeln(\"Asset-Log \" + now.toLocaleString()); logfile.writeln(\"=========================================================\\n\"); for (var i = 0; i < cassets.length; i++) { var a = cassets[i]; logfile.writeln(\" Asset: \" + a.name); logfile.writeln(\" Quelle: \" + a.src); logfile.writeln(\" Ziel: \" + a.dest); if (a.fcopy) { logfile.writeln(\" Status Kopieren: Erfolgreich kopiert\"); } else { logfile.writeln(\" Status Kopieren: Fehler beim Kopieren\"); } logfile.writeln(\" Info: \" + a.finfo); logfile.writeln(\"\"); } logfile.close(); if (showOutput) { logfile.execute(); } } else { alert(\"Konnte Log-Datei nicht schreiben.\"); }}var projectItems = [];var jdata = {\"count\": 0};function doWorkflow(){collectAllMediaItems(app.project.rootItem, projectItems);if (projectItems.length > 0){ var allowedPaths = [\"T:\\\\Produktion\\\\RSS\", \"T:/Produktion/RSS\", \"/Produktion/RSS/LoRes/\", \"killphil/Premiere/Material/\",\"\\\\\\\\l-fslores1.adin.mdr.de\\\\rss\",\"\\\\\\\\l-fslores.adin.mdr.de\\\\RSS\\\\\"]; var badAssets = checkAssetValidation(projectItems, allowedPaths); var badlist = ''; for (var j = 0; j < badAssets.length; j++) { badlist = badlist + badAssets[j].name + \", \"; } if (badAssets.length > 0) { var confirmResult = confirm(\"Folgende Assets sind nicht auf dem RSS-Server zentral abgelegt:\"+'\\n\\n'+badlist+\"Soll ich eine Korrektur starten?\", true, \"Ungltige Asset-Pfade\"); if (confirmResult) { var result = copyAllBadAssets(badAssets); logCassetListToProjectFolder(result.tasksList,\"\", false); var alldata = {jdata: result.tasksList, count: result.tasksList.length}; jdata = jsonStringify(alldata); if (result.tasksList.length != badAssets.length) { alert(\"Nicht alle ungltigen Assets konnten korrigiert werden. Bitte prfen Sie die Log-Datei.\"); logCassetListToProjectFolder(result.missingList, \"missing_\", true); } } } else { alert(\"Alle Asset-Pfade sind gueltig und liegen zentral verfuegbar.\"); } }return jdata;}doWorkflow();jdata;})()}catch(e){alert(\"FEHLER: \"+e.toString());}",
"nodeUUID": "bfe2447d-6d62-4552-92e3-3f4e8c2e86b2"
}
}