Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var logfile = "C:/log/jdownloader-eventscripter.log"; // File this script logs to
- var command = "filebot"; // Change this if filebot isn't on your path
- var archiveExtensions = /(\.(zip|rar|7z|par\d+|part\d+|r\d+|t\d+|\d{3}))$/; // Regex to test for nested archives in extracted files
- var defs = {
- "plex" : "ZEUS",
- "unsorted" : "y",
- "skipExtract" : "y",
- "clean" : "y",
- "minFileSize" : "104857600",
- "excludeList" : "C:/Util/amc-input.txt",
- "seriesFormat" : "D:/Serien/{n}/{'Season '+s}/{n} - {s00e00} - {t}",
- "movieFormat" : "D:/Filme/{n} ({y}) [{vf}]/{n} ({y}) [{vf}]"
- };
- var options = {
- "-script" : "fn:amc",
- "--log-file" : "C:/log/filebot.log",
- "--action" : "move",
- "--conflict" : "auto"
- };
- var switches = [
- "-non-strict"
- ];
- var logBuf = "";
- function log(message) {
- logBuf += new Date().toISOString().slice(0, 19) + " - " + message + "\r\n";
- }
- function logArray(message, arr) {
- log(message);
- if (arr == null) {
- log("\tnone");
- return;
- }
- for (var i = 0; i < arr.length; i++) {
- log("\t" + arr[i]);
- }
- }
- function logSpacer() {
- log("++++++++++++++++++++++++++++++");
- }
- function flushLog() {
- writeFile(logfile, logBuf, true);
- logBuf = "";
- }
- function quoteIfNecessary(value) {
- return (value != null && value.indexOf(' ') >= 0) ? '"' + value + '"' : value;
- }
- function reduce(map, joinChar) {
- var keyValuePairs = [];
- for (var key in map) {
- keyValuePairs[keyValuePairs.length] = key + joinChar + quoteIfNecessary(map[key]);
- }
- return keyValuePairs;
- }
- function mapToArray(map) {
- var array = [];
- for(var key in map) {
- array[array.length] = key;
- array[array.length] = quoteIfNecessary(map[key]);
- }
- return array;
- }
- function createArgumentArray(cmd, options, switches, inputs, defs) {
- return [cmd].concat(options).concat(switches).concat(inputs).concat(["--def"]).concat(defs);
- }
- function isArchiveFile(filename) {
- return archiveExtensions.test(filename);
- }
- function containsNestedArchive(extractedFiles) {
- for (var i = 0; i < extractedFiles.length; i++) {
- if (isArchiveFile(extractedFiles[i])) {
- return true;
- }
- }
- return false;
- }
- function sanitizeInput(input) {
- var sanitizedInput = [];
- for(var i = 0; i < input.length; i++) {
- sanitizedInput[sanitizedInput.length] = quoteIfNecessary(input[i]);
- }
- return sanitizedInput;
- }
- var archiveUID = archive.getFolder() + "\\" + archive.getName();
- var extractedFiles = archive.getExtractedFiles();
- logSpacer();
- log("FINISHED EXTRACTION - " + archiveUID);
- log("Containing Folder: " + archive.getFolder());
- log("Type: " + archive.getArchiveType());
- logArray("Extracted files:", extractedFiles);
- if(extractedFiles == null || extractedFiles.length == 0) {
- log("SKIPPING - No files extracted.");
- } else if (containsNestedArchive(extractedFiles)) {
- log("SKIPPING - Nested archive detected.");
- } else {
- var input = sanitizeInput(extractedFiles);
- var arguments = createArgumentArray(command, mapToArray(options), switches, input, reduce(defs, "="));
- log("RUNNING SCRIPT - " + archiveUID);
- callAsync(
- function(exitCode, stdOut, errOut) {
- if (exitCode == 0) {
- log("SUCCESS - " + archiveUID);
- } else {
- log("ERROR - " + archiveUID + " - Code " + exitCode);
- }
- flushLog();
- },
- arguments
- );
- }
- logSpacer();
- flushLog();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement