On Mon, 2003-03-24 at 13:53, Michael A. Peters wrote:
> On Mon, 2003-03-24 at 13:26, Cliff Wells wrote:
> > Okay, here's a modified version that can be used one of two ways, either
> > as a way to dump the email addresses from the Evo contact database, or
> > as a filter.
> > 
> > 1. Dump email addresses:
> >      whitelist.py > whitelist.txt
> > 
> > 2. As a filter:
> >      whitelist.py [EMAIL PROTECTED]  
> >      returns 0 if not in contacts or non-zero if [EMAIL PROTECTED] is 
> >      in contacts.
> 
> Hey - that's cool! That's perfect. Thanks!

Thanks, but not quite ;)  Here's a better version that will compare
against alternate email addresses as well.  Other than that, it works
the same.


-- 
Cliff Wells, Software Engineer
Logiplex Corporation (www.logiplex.net)
(503) 978-6726 x308  (800) 735-0555 x308
#!/usr/bin/python


import bsddb, os, re, sys

if len(sys.argv) > 1: # return 0 or 1 if arg is in contacts
    check = sys.argv[1]
else:
    check = None      # just dump a list of contacts
    
home = os.getenv('HOME')
dbname = '%s/evolution/local/Contacts/addressbook.db' % home

db = bsddb.hashopen(dbname, 'r')

regex = re.compile('EMAIL;INTERNET:(?P<contact>.*)[\n|$]', re.M)

for k in db.keys():
    matches = [s.strip() for s in regex.findall(db[k])]
    for contact in matches:
        if contact:
            if check is not None:
                if check == contact:
                    db.close()
                    sys.exit(1)
            else:
                print contact
        
db.close()

Reply via email to