Here's my fist try with it. This will remove only those packages that have finished downloading AND extracting.
Code:
////////////////////////////////////////////////////////////////////////////////
// CleanupDownloads
////////////////////////////////////////////////////////////////////////////////
require("C:\\Users\\Admin\\Documents\\Visual Studio 2015\\Projects\\JDownloader-EventScripter\\!My_JS-Functions.js");
////////////////////////////////////////////////////////////////////////////////
var showAlertInfo = true;
var dt = new Date();
var datumZeit = dt.toUTCString();
var t = "";
var pKeep = pRemoved = pError = 0;
if (this.name == "[CleanupDownloads]") {
var myPackages = callAPI("downloadsV2", "queryPackages", { "name": true });
if (myPackages.length > 0) {
for (var i = 0; i < myPackages.length; i++) {
var myFilePackage = getDownloadPackageByUUID(myPackages[i].uuid);
var myDownloadLinks = myFilePackage.getDownloadLinks();
var isExtracted = true;
for (var o = 0; o < myDownloadLinks.length; o++) {
if (myDownloadLinks[o].getArchive() != null && myDownloadLinks[o].getExtractionStatus() != "SUCCESSFUL") {
isExtracted = false;
break;
}
}
t += (i + 1) + "="" + myPackages[i].name + "" (" + myFilePackage.isFinished() + "/" + isExtracted + ")";
if (myFilePackage.isFinished() && isExtracted) {
t += " DONE->";
if (myFilePackage.remove()) {
pRemoved++;
t += "Removed\r\n";
} else {
pError++;
t += "RemoveError\r\n";
}
} else {
t += " Keep\r\n";
pKeep++;
}
}
t += "\r\nRemoved: " + pRemoved + " RemoveErrors: " + pError + " Kept: " + pKeep;
if (showAlertInfo) alert("Cleanup Downloads (isDownloaded/isExtracted)\r\n" + datumZeit + "\r\n\r\n" + t);
} else {
if (showAlertInfo) alert("Cleanup Downloads\r\n" + datumZeit + "\r\n\r\nNo Packages in Downloadlist!");
}
}