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()