From 76c486fa56b56441464445592da060c00b9dd122 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Debian Linux)" <rob@synchro.net> Date: Thu, 14 Sep 2023 13:59:41 -0700 Subject: [PATCH] A simple script to delete messages a msgbase e.g. 'jsexec delmsgs mail from joe-blow' --- exec/delmsgs.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 exec/delmsgs.js diff --git a/exec/delmsgs.js b/exec/delmsgs.js new file mode 100644 index 0000000000..eecd0a9077 --- /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)); -- GitLab