On Wed, Feb 20, 2013 at 05:27:50PM +0100, Matthias Apitz wrote:
Hi, In mutt you can delete an entire thread, without reading it, by pressing Ctrl-d It would be nice if mutt, for example with Ctrl-Shift-d, remembers this after a mutt session and does not present any mail of this thread anymore. Comments about such a feature? matthias PS: The actual thread would have been a candidate for me for pressing Ctrl-Shift-d :-)
something like this should work. you can just pipe a message to the script and add a procmail receipe to do something with messages in your killfile:
#!/usr/bin/env python import email import argparse import sys import anydbm parser = argparse.ArgumentParser(description='check or kill email threads') parser.add_argument('-c', '--check', action='store_true', help='check if this message is part of a killed thread') parser.add_argument('-k', '--kill', action='store_true', help='mark messages in this thread as killed') parser.add_argument('-d', '--db', help='specify database to use to store message ids', required=True) args = parser.parse_args() db = anydbm.open(args.db, 'c') msg = email.message_from_file(sys.stdin) msgid = msg.get('message-id') rv = 0 if args.check: refs = msg.get('references', '').split() if msgid in db or any((k in db for k in refs)): db[msgid] = None # add current message in event references are trimmed else: rv = 1 elif args.kill: db[msgid] = None else: print >>sys.stderr, 'Must specify either --check or --kill' rv = 1 db.close() sys.exit(rv)