#!/opt/bin/python ## ## $Id: bulk-vette.py,v 1.3 2003/01/17 21:32:30 dgc Exp $ ## ## bulk-vette.py disposes all of a list's post requests. ## import sys import getopt import string import mailman import re from Mailman.MailList import MailList from Mailman.MailList import ListAdmin self = sys.argv[0] value = -1 comment = "bulk action by administrator" def usage(): print 'usage: %s [-a | --accept] [-r | --reject] [-d | --discard]' % sys.argv[0] print ' [-c "why" | --comment="why"] list [list ...]' (opts, args) = getopt.getopt(sys.argv[1:], "hardc:", ['help', 'accept', 'reject', 'discard', 'comment=']); for (opt, optarg) in opts: if opt == "-h" or opt == "--help": usage() sys.exit(4) if opt == "-a" or opt == "--accept": value = 0 if opt == "-r" or opt == "--reject": value = 1 if opt == "-d" or opt == "--discard": value = 2 if opt == "-c" or opt == "--comment": comment = optarg if len(args) == 0: usage() sys.exit(4) if value < 0: sys.stderr.write("%s: one of -a, -r, -d is required\n" % sys.argv[0]) sys.exit(8); for list in args: try: m = MailList(list, lock=0) except: print "%s: no list named %s" % (sys.argv[0], list) continue if not m.requests.has_key('post'): print "%s: no held postings for %s" % (sys.argv[0], list) n = len(m.requests['post']) while len(m.requests['post']): request = m.requests['post'][0] m.HandlePostRequest(request[2:], value, comment) m.RemoveRequest(request[0]) print "%s: %d messages vetted" % (list, n) m.Save() m.Unlock()