#3081
|
|||
|
|||
Okay, seems that my previous attempts with scripts broke something, loaded a backup and it works flawlessly.
Thank you! |
#3082
|
|||
|
|||
You're welcome.
|
#3083
|
|||
|
|||
Is there a reason there's not a separate subforum just for Event Scripter discussions?
https://board.jdownloader.org/showth...366#post541366 |
#3084
|
|||
|
|||
I've come across a number of sites that now include #hashtag text in the filenames. I don't want those, as they tend to make the pathname excessively long.
I raised the question on this thread. I wrote this script to strip them out. It's called via a Packagizer Hook: Code:
if (linkcheckDone) { var myPackagizerLink = link; var fileName = myPackagizerLink.getName(); var re, ext, newName; if (fileName !== null && fileName.includes("#")) { ext = fileName.slice((fileName.lastIndexOf(".") - 1 >>> 0) + 2); if (ext !== "") { ext = "." + ext.toLowerCase(); } fileName = fileName.substr(0, (fileName.length - ext.length)); rgx = new RegExp("#[a-zA-Z0-9_]+", "gi"); newName = fileName.replace(rgx, ""); rgx = new RegExp("\\s\\s+", "gi"); newName = newName.replace(rgx, " "); newName = newName.trim(); myPackagizerLink.setName(newName + ext); } } |
#3085
|
||||
|
||||
New separate subforum for EventScripter scripts:
https://board.jdownloader.org/forumdisplay.php?f=52
__________________
JD Supporter, Plugin Dev. & Community Manager
Erste Schritte & Tutorials || JDownloader 2 Setup Download |
#3086
|
||||
|
||||
Moved EventScripter thread in our new EventScripter subforum and pinned it there.
__________________
JD Supporter, Plugin Dev. & Community Manager
Erste Schritte & Tutorials || JDownloader 2 Setup Download |
08.12.2024, 17:49 |
StefanM |
Message deleted by pspzockerscene.
Reason: User requested deletion of this post
|
08.12.2024, 17:51 |
StefanM |
Message deleted by pspzockerscene.
Reason: User requested deletion of this post
|
#3087
|
|||
|
|||
Hallo
ich melde mich wieder nach 3 Jahren. Ich habe nun das was ich von Anfang an wollte nämlich, dass das Script Serien und Filme unterscheiden kann und zusätzlich nach dem Entpacken im Entpackverzeichnis in jeden Ordner geht und guckt ob sich da Videodateien befinden und diese in ein anderes Verzeichnis verschiebt sowie umbenannt. Dieses Script möchte ich euch nicht vorenthalten. Ich finds genial. // Trigger: Entpacken beendet
Spoiler:
sleep(1500);
var myArchive = archive; // Schritt 1: Paketnamen aus Datei lesen var packageName; try { var filePath = "R:\\Dateiname.txt"; var fileContent = readFile(filePath); packageName = fileContent.split("\n")[0].trim(); log("Paketname aus Datei geladen: " + packageName); } catch (e) { log("Fehler beim Lesen des Paketnamens aus Datei: " + e.message); packageName = "Unbekannt"; log("Fortsetzen mit Paketname: 'Unbekannt'"); } // Schritt 2: Zielordner vorbereiten // ----------------------------------------------------------------------------------------- //var baseTargetDir = "I:\\Neu"; // ------------------------- Ablageort ändern ---------------------------------------- var baseTargetDir = "R:\\zum verschieben"; // ------------------------- Ablageort ändern ---------------------------------------- ensureDirectoryExists(baseTargetDir); var targetPackageDir = baseTargetDir + "\" + packageName; ensureDirectoryExists(targetPackageDir); // Schritt 3: Extrahierten Ordner holen var extractedFolder = myArchive.getExtractToFolder(); log("Extrahierter Ordner: " + extractedFolder); // Unterstützte Formate und Konfiguration var videoFormats = [".mkv", ".avi", ".mp4", ".mov", ".wmv"]; var episodePattern = /(S(\d{2})E\d{2})/i; // "S01E04"-Format var seasonSuffixPattern = /-(\d+)(?=\.\w+)$/; // "-215.mkv" var minFileSize = 200 * 1024 * 1024; // Mindestgröße: 200 MB // Funktion: Sicherstellen, dass ein Ordner existiert function ensureDirectoryExists(path) { var dir = getPath(path); if (!dir.exists()) { dir.mkdirs(); log("Ordner erstellt: " + path); } } // Funktion: Dateien verarbeiten function processFile(filePath) { var file = getPath(filePath); var fileName = file.getName(); var fileExt = fileName.substring(fileName.lastIndexOf('.')).toLowerCase(); if (videoFormats.indexOf(fileExt) !== -1) { var match = fileName.match(episodePattern); var seasonDir; if (match) { // Staffel-Ordner erstellen (Basierend auf SXZEXZ) var seasonNumber = parseInt(match[2], 10); seasonDir = targetPackageDir + "\\Staffel " + seasonNumber; log("Match gefunden: S03E03"); } else if ((match = fileName.match(seasonSuffixPattern))) { // Staffel-Ordner erstellen (Basierend auf -XXX) var seasonNumber = Math.floor(match[1] / 100); // Staffel aus Nummer ableiten seasonDir = targetPackageDir + "\\Staffel " + seasonNumber; log("Match gefunden: Nummer am Ende der Datei"); } if (seasonDir) { ensureDirectoryExists(seasonDir); var tempPath = "R:\\Zwischenspeichern" //+ packageName + fileExt; var Kopierpfad = "R:\\Zwischenspeichern\" + fileName //+ fileExt; log("Pfad der Datei zum Kopieren: " + Kopierpfad); ensureDirectoryExists(tempPath) var targetFilePath = seasonDir //+ "\" + packageName + fileExt; try { // Datei in Zwischenspeicher verschieben und umbenennen log("Versuch starten: " + tempPath); file.moveTo(getPath(tempPath)); log("Datei umbenannt und in Zwischenspeicher verschoben: " + tempPath); // Datei aus Zwischenspeicher kopieren und löschen var tempFile = getPath(Kopierpfad); tempFile.copyTo(getPath(targetFilePath)); tempFile.delete(); log("Datei aus Zwischenspeicher verschoben nach: " + targetFilePath + " und gelöscht in " + tempPath); } catch (e) { log("Fehler beim Verarbeiten der Datei: " + e.message); } } else if (file.size > minFileSize) { // Film: Datei in Zwischenspeicher und Zielordner verschieben ensureDirectoryExists("R:\\Zwischenspeichern") var tempPath = "R:\\Zwischenspeichern\" + packageName + fileExt; var targetFilePath = targetPackageDir //+ "\" + packageName + fileExt; // zum kopieren mit Datenamen und Extension try { file.renameTo(tempPath); log("Film umbenannt und in Zwischenspeicher verschoben: " + tempPath); var tempFile = getPath(tempPath); tempFile.copyTo(getPath(targetFilePath)); tempFile.delete(); log("Film aus Zwischenspeicher verschoben nach: " + targetFilePath); } catch (e) { log("Fehler beim Verschieben des Films: " + e.message); } } else { log("Datei ignoriert (zu klein): " + filePath); } } else { log("Datei ignoriert (kein Videoformat): " + filePath); } } // Funktion: Verzeichnis rekursiv durchsuchen function traverseDirectory(dirPath) { var dir = getPath(dirPath); if (!dir.exists()) { log("Verzeichnis nicht gefunden: " + dirPath); return; } dir.getChildren().forEach(function (item) { if (item.isFile()) { processFile(item.getAbsolutePath()); } else if (item.isDirectory()) { traverseDirectory(item.getAbsolutePath()); } }); if (dir.getChildren().length === 0) { dir.delete(); log("Leeres Verzeichnis gelöscht: " + dirPath); } } // Schritt 4: Verarbeitung starten traverseDirectory(extractedFolder); // Schritt 5: "Dateiname.txt" löschen try { var txtFile = getPath(filePath); if (txtFile.exists()) { txtFile.delete(); log("Dateiname.txt gelöscht."); } } catch (e) { log("Fehler beim Löschen von Dateiname.txt: " + e.message); } log("Verarbeitung abgeschlossen."); Momentan schreibe ich mit dem "Download ist gestoppt" Event den Paketnamen in eine Datei und lese sie mit diesem Script aus. Kann mir jemand sagen wie ich den Paketnamen direkt in die Variable schreiben kann. Weil wenn während dem entpacken ein anderes Paketteil von einem anderen Paket fertiggeladen ist, wird die Datei "Dateiname" überschrieben und die entpackten Dateien an den falschen Ort verschoben. |
Thread Tools | |
Display Modes | |
|
|