All pastes #976570 Raw Edit

clueless

public text v1 · immutable
·published 2008-04-08 08:27 UTC
rendered paste body
#/usr/bin/env python2.5#  David Bremner 2007/10/10# placed in the public domainfrom mailbox import Maildirfrom email import utilsimport osimport timeimport datetimeimport loggingimport fcntlconfig = { 'loglevel':logging.DEBUG,	   'logfile':os.path.expanduser('~/var/log/scan-whitelist.log'),	   'keepdays':14,	   'maildir':os.path.expanduser("~/Maildir/"),	   'whitelistfolder':'whitelist',	   'outfile':os.path.expanduser("~/var/mail/whitelist"),	   }logging.basicConfig(level=config['loglevel'],                    format='%(asctime)s %(levelname)s %(message)s',                    filename=config['logfile'],                    filemode='a')fd=open(config['outfile'],'r+')exists={}fcntl.lockf(fd,fcntl.LOCK_EX)for line in fd.readlines():    exists[line.strip()]=1now=datetime.datetime.now()mainbox=Maildir(config['maildir'])whitelist=mainbox.get_folder(config['whitelistfolder'])for key in whitelist.keys():	msg=whitelist.get_message(key)	addr=msg['from']	exists[addr]=1	logging.debug('processing %s %s' %(key,addr))	whitelist.discard(key)fd.seek(0)for line in sorted(exists.keys()):    print >>fd,linefcntl.lockf(fd,fcntl.LOCK_UN)fd.close()