Skip to content

Instantly share code, notes, and snippets.

@Breakerz
Created January 22, 2020 00:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Breakerz/f7365e4179800198a08d8b576c86a4e8 to your computer and use it in GitHub Desktop.
Save Breakerz/f7365e4179800198a08d8b576c86a4e8 to your computer and use it in GitHub Desktop.
Push MQTT Event on Download finish
//---------- Global declarations -----------------
var bWriteFile = false; //pessimistic approach: no file-writing at start, if situation ok, then set it "true"
var sText = ""; //will be filled with content (or not :-)
var iContent = 0; //setting bit 1 if pwd is available, setting bit 2 if comments available //if not set, no info file
var myPackage = package;
var aParts = myPackage.getDownloadLinks();
var aArchives = package.getArchives();
//---------- ANALYZING SITUATION ----------
if (myPackage.isFinished() == true) {
//no further analysis due to Trigger "Package Finished" :-)
bWriteFile = true;
}
//---------- Building Info-Text -----------
if (bWriteFile == true) {
sText += "{\"PackageName\":\"" + myPackage.getName() + "\"," +
"\"PackageDownloadFolder\" : \"" + myPackage.getDownloadFolder() + "\"," +
"\"PackageTotal\" : " + myPackage.getBytesTotal() + "," +
"\"PackageLoaded\" : " + myPackage.getBytesLoaded() + "," +
"\"PackageFinished \": " + myPackage.isFinished() + ",";
if (myPackage.getComment() != undefined) {
sText += "\"PackageComment\" : \"" + myPackage.getComment() + "\",";
iContent |= 2;
}
sText += "\"parts\": [";
for (var i = 0; i < aParts.length; i++) {
if (i > 0) {
sText += "}"
}
sText += "{ \"PartNo\" : " + i + "," +
"\"PartName\": \"" + aParts[i].getName() + "\"," +
"\"PartStatus\": \"" + aParts[i].getStatus() + "\"," +
"\"PartEnabled\":" + aParts[i].isEnabled() + "," +
"\"PartFinished\":" + aParts[i].isFinished() + "," +
"\"PartSkipped\": " + aParts[i].isSkipped() + "," +
"\"PartExtractionStatus\": \"" + aParts[i].getExtractionStatus() + "\"," +
"\"PartTotal\": " + aParts[i].getBytesTotal() + "," +
"\"PartLoaded\": " + aParts[i].getBytesLoaded() + ",";
if (aParts[i].getUrl() != undefined) {
sText += "\"PartURL\": \"" + aParts[i].getUrl() + "\"";
}
if (aParts[i].getComment() != undefined) {
sText += ",\"PartComment\": \"" + aParts[i].getComment() + "\",";
iContent |= 2;
}
var myArchive = aParts[i].getArchive();
if (myArchive != undefined) {
if (myArchive.getUsedPassword() != undefined) {
sText += "\",PartUsedPassword\": \"" + myArchive.getUsedPassword() + "\"";
iContent |= 1;
}
}
sText += "}"
}
sText += "],"
sText += "\"archives\" : ["
for (var i = 0; i < aArchives.length; i++) {
if (i > 0) {
sText += "}"
}
sText += "{\"ArchiveNo\" : " + i + "," +
"\"ArchiveName\" : \"" + aArchives[i].getName() + "\"," +
"\"ArchiveArchiveType\" : \"" + aArchives[i].getArchiveType() + "\"";
if (aArchives[i].getInfo() != undefined) {
sText += ",\"PackageArchiveInfo\" : ";
sText += JSON.stringify(aArchives[i].getInfo(), null, 2);
}
sText += "}"
}
sText += "]}"
}
//var myPackage = package
var msg = sText; //JSON.stringify(myPackage) //getAllFilePackages().join()
callSync("/usr/bin/mosquitto_pub", "-h", "192.168.0.4", "-t", "jdownload/packagefinish", "-m", msg);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment