Aktive Konfiguration: PROD · Helmut4 PROD · helmut4_backup_l-helmut1.adin.mdr.de_2026-10-18 10_57_41 202 Streams
Öffnen
PROD IO Node-Detail wirkt minified

Job Execute ExtendScript In Premiere Action V2

helmut4_backup_l-helmut1.adin.mdr.de_2026-10-18 10_57_41 · Prüfe Projekt nach "RSS-Offline" Assets

Node-Informationen

Stream
Prüfe Projekt nach "RSS-Offline" Assets
Klasse
nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2
UUID
faa17f4f-b856-45bf-911b-e2815f3af416
Operator-ID
0
Event
CUSTOM_IO

Properties

{
  "extendScript": "try{(function(){var morePaths = '{stream.variable.morePaths}';var hardPaths = [\"T:\\\\Produktion\\\\RSS\", \"T:/Produktion/RSS\", \"/Produktion/RSS/LoRes/\", \"killphil/Premiere/Material/\",\"\\\\\\\\L-SAN6-21.adin.mdr.de\\\\rss\"]; var allowedPaths = hardPaths.concat(morePaths);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(); } casset.fcopy = true; casset.finfo = \"Simuliertes Kopieren keine echte Kopie durchgeführt\"; return casset; }function copyAllBadAssets(assets){ var sep = (typeof Folder !== \"undefined\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).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\"); logfile.encoding = \"UTF-8\"; 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 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, \"Ungültige 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 ungültigen Assets konnten korrigiert werden. Bitte prüfen Sie die Log-Datei.\"); logCassetListToProjectFolder(result.missingList, \"missing_\", true); } } } else { alert(\"Alle Asset-Pfade sind gültig und liegen zentral verfügbar.\"); return jdata; } }return jdata;}doWorkflow();return true;})()}catch(e){alert(\"FEHLER: \"+e.toString());}",
  "nodeUUID": "faa17f4f-b856-45bf-911b-e2815f3af416",
  "failedNodeUUID": "e5392628-18e6-431a-8e35-f0f3ecfc9093",
  "successNodeUUID": "2ea7c554-d0ce-4340-b005-ffaa8fb13f72"
}

Skript

Original: 1 Zeilen · 5867 Zeichen Formatiert: 209 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(){var morePaths = '{stream.variable.morePaths}';var hardPaths = ["T:\\Produktion\\RSS", "T:/Produktion/RSS", "/Produktion/RSS/LoRes/", "killphil/Premiere/Material/","\\\\L-SAN6-21.adin.mdr.de\\rss"]; var allowedPaths = hardPaths.concat(morePaths);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(); } casset.fcopy = true; casset.finfo = "Simuliertes Kopieren keine echte Kopie durchgeführt"; return casset; }function copyAllBadAssets(assets){ var sep = (typeof Folder !== "undefined" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).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"); logfile.encoding = "UTF-8"; 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 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, "Ungültige 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 ungültigen Assets konnten korrigiert werden. Bitte prüfen Sie die Log-Datei."); logCassetListToProjectFolder(result.missingList, "missing_", true); } } } else { alert("Alle Asset-Pfade sind gültig und liegen zentral verfügbar."); return jdata; } }return jdata;}doWorkflow();return true;})()}catch(e){alert("FEHLER: "+e.toString());}
Formatiert
try {
  (function() {
    var morePaths = '{stream.variable.morePaths}';
    var hardPaths = ["T:\\Produktion\\RSS", "T:/Produktion/RSS", "/Produktion/RSS/LoRes/", "killphil/Premiere/Material/", "\\\\L-SAN6-21.adin.mdr.de\\rss"];
    var allowedPaths = hardPaths.concat(morePaths);

    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();
      }
      casset.fcopy = true;
      casset.finfo = "Simuliertes Kopieren keine echte Kopie durchgeführt";
      return casset;
    }

    function copyAllBadAssets(assets) {
      var sep = (typeof Folder !== "undefined" && Folder.separator) ? Folder.separator : '/';
      var projectFolder = new Folder(app.project.path).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");
      logfile.encoding = "UTF-8";
      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 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, "Ungültige 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 ungültigen Assets konnten korrigiert werden. Bitte prüfen Sie die Log-Datei.");
              logCassetListToProjectFolder(result.missingList, "missing_", true);
            }
          }
        } else {
          alert("Alle Asset-Pfade sind gültig und liegen zentral verfügbar.");
          return jdata;
        }
      }
      return jdata;
    }
    doWorkflow();
    return true;
  })()
} catch (e) {
  alert("FEHLER: " + e.toString());
}

Rohdaten

{
  "class": "nodes.actions.helmut.job.JobPremiereExecuteExtendScriptActionV2",
  "deprecated": false,
  "properties": {
    "extendScript": "try{(function(){var morePaths = '{stream.variable.morePaths}';var hardPaths = [\"T:\\\\Produktion\\\\RSS\", \"T:/Produktion/RSS\", \"/Produktion/RSS/LoRes/\", \"killphil/Premiere/Material/\",\"\\\\\\\\L-SAN6-21.adin.mdr.de\\\\rss\"]; var allowedPaths = hardPaths.concat(morePaths);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(); } casset.fcopy = true; casset.finfo = \"Simuliertes Kopieren keine echte Kopie durchgeführt\"; return casset; }function copyAllBadAssets(assets){ var sep = (typeof Folder !== \"undefined\" && Folder.separator) ? Folder.separator : '/'; var projectFolder = new Folder(app.project.path).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\"); logfile.encoding = \"UTF-8\"; 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 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, \"Ungültige 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 ungültigen Assets konnten korrigiert werden. Bitte prüfen Sie die Log-Datei.\"); logCassetListToProjectFolder(result.missingList, \"missing_\", true); } } } else { alert(\"Alle Asset-Pfade sind gültig und liegen zentral verfügbar.\"); return jdata; } }return jdata;}doWorkflow();return true;})()}catch(e){alert(\"FEHLER: \"+e.toString());}",
    "nodeUUID": "faa17f4f-b856-45bf-911b-e2815f3af416",
    "failedNodeUUID": "e5392628-18e6-431a-8e35-f0f3ecfc9093",
    "successNodeUUID": "2ea7c554-d0ce-4340-b005-ffaa8fb13f72"
  }
}

Vorgang läuft

0 s · Bitte warten. Der Vorgang wird verarbeitet.

    0 s · Es wird keine neue Snapshot-Analyse gestartet.

    Willkommen im Helmut Analyzer

    Neu hier? Unter Info & Hilfe findest du einen Quickstart für den Export aus Helmut4, den Import deiner Konfiguration und die Auswertung. Dort sind auch unsere Prüfregeln und Best Practices erklärt.

    Info & Hilfe öffnen