Skip to content

Instantly share code, notes, and snippets.

@Vitexus
Created December 7, 2016 14:24
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 Vitexus/3fd90b21dd45fd6dee685235be6398ab to your computer and use it in GitHub Desktop.
Save Vitexus/3fd90b21dd45fd6dee685235be6398ab to your computer and use it in GitHub Desktop.
FiltaQuilla script to move all ticket messages to folder "done"
/*
* FiltaQuilla script to move all ticket messages to folder "done"
*/
destfolderName = "done";
Components.utils.import("resource:///modules/iteratorUtils.jsm");
Components.utils.import("resource:///modules/MailUtils.js");
let acctmgr = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager);
let folders = acctmgr.allFolders;
let destinationFolder = null;
let length = folders.length;
for (let i = 0; i < length; i++) {
let folder = folders.queryElementAt(i, Ci.nsIMsgFolder);
if (folder.name == destfolderName)
destinationFolder = folder;
}
if (destinationFolder == null) {
alert("Can't find myFolder!");
exit(1);
}
for (let index = 0; index < msgHdrs.length; index++)
{
let hdr = msgHdrs.queryElementAt(index, Ci.nsIMsgDBHdr);
keys = [];
hdr.subject.replace(/\[(.+?)\]/g, function ($0, $1) {
keys.push($1);
});
var taskdone = keys[1];
//We Know Done FlySpry Task ID: alert(taskdone + " in " + hdr.folder.name);
var mutableArrayOfMessages = Components.classes["@mozilla.org/array;1"].createInstance(Components.interfaces.nsIMutableArray);
//Search for message with "[taskdone]" in subject
for (let msgHdr in fixIterator(hdr.folder.messages, Components.interfaces.nsIMsgDBHdr)) {
if (msgHdr.subject.includes("[" + taskdone + "]")) {
// alert("Move To Done: " + msgHdr.subject);
mutableArrayOfMessages.appendElement(msgHdr, false /*weak*/);
}
}
var cs = Components.classes["@mozilla.org/messenger/messagecopyservice;1"].getService(Components.interfaces.nsIMsgCopyService);
cs.CopyMessages(hdr.folder, mutableArrayOfMessages, destinationFolder, true /*isMove*/, null /*listener*/, null, true /*allowUndo*/);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment