#!/usr/bin/python from cnotmuch import notmuch import notmuch_addresses def get_matching_messages(self): notmuch_db = notmuch.Database(self.db_path) query_string = "(from:" + self.email for addr in self.other_emails: query_string += (" OR from:" + addr) query_string += ")" query = notmuch.Query(notmuch_db, query_string) return query.search_messages() notmuch_addresses._get_matching_messages = get_matching_messages matcher = notmuch_addresses.NotmuchAddressMatcher('') matcher.generate_matches() print """ (defun bbdb-snarf-email-alias (name email) "Import email alias into bbdb" (condition-case nil (unless (bbdb-search-simple nil email) (bbdb-create-internal name nil email nil nil nil)) (error nil))) """ for elem in matcher.matches: if not '@' in elem: continue if not '<' in elem: print "(bbdb-snarf-email-alias \"%s\")" % elem.lower() else: elem = elem.replace('"', '') elem = elem.replace(' <', '" "') elem = elem.replace('>', '"') if elem[0] != '"': elem = '"%s' % elem print "(bbdb-snarf-email-alias %s)" % elem