diff --git a/exec/delmsgs.js b/exec/delmsgs.js new file mode 100644 index 0000000000000000000000000000000000000000..eecd0a90777a1e7436321b7ddd853efc585b02aa --- /dev/null +++ b/exec/delmsgs.js @@ -0,0 +1,34 @@ +// Delete msgs +// usage: [msg-base=mail] [hdr-field=from] "value" + +load("sbbsdefs.js"); + +"use strict"; + +var base = new MsgBase(argv[0] || "mail"); +var field = argv[1] || "from"; +var value = String(argv[2]).toLowerCase(); +if(!base.open()) + throw new Error("Can't open base: " + base.code); +var total_msgs = base.total_msgs; +var removed = 0; +for(i=0;i<total_msgs;i++) { + hdr = base.get_msg_header( /* by_offset: */ true, + /* offset: */ i, + /* expand_fields: */ false); + printf("#%lu from: %-30s %08lx\r\n",hdr.number,hdr.from,hdr.attr); + if(hdr && !(hdr.attr & MSG_DELETE) && String(hdr[field]).toLowerCase() == value) { + hdr.attr |= MSG_DELETE; + printf("Removing message #%lu\r\n",hdr.number); + if(!base.put_msg_header(true,i,hdr)) + alert(base.last_error); + else { + removed++; + } + } +} + +base.close(); + +print(); +print(format("Removed %u msgs", removed));