diff options
Diffstat (limited to 'emailcanary')
-rw-r--r-- | emailcanary/canarydb.py | 130 | ||||
-rw-r--r-- | emailcanary/email-digest-sender.py | 42 |
2 files changed, 86 insertions, 86 deletions
diff --git a/emailcanary/canarydb.py b/emailcanary/canarydb.py index 980431b..8bf944f 100644 --- a/emailcanary/canarydb.py +++ b/emailcanary/canarydb.py @@ -2,77 +2,77 @@ import sqlite3 from datetime import datetime class CanaryDB: - def __init__(self, filename): - self.conn = sqlite3.connect(filename, detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES) + def __init__(self, filename): + self.conn = sqlite3.connect(filename, detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES) - # Create Tables if necessary - cursor = self.conn.cursor() - cursor.execute("CREATE TABLE IF NOT EXISTS pings (listAddress, address, uuid, timesent timestamp, timereceived timestamp)") - cursor.execute("CREATE TABLE IF NOT EXISTS accounts (list, address, imapserver, password)") + # Create Tables if necessary + cursor = self.conn.cursor() + cursor.execute("CREATE TABLE IF NOT EXISTS pings (listAddress, address, uuid, timesent timestamp, timereceived timestamp)") + cursor.execute("CREATE TABLE IF NOT EXISTS accounts (list, address, imapserver, password)") - def close(self): - self.conn.close() + def close(self): + self.conn.close() - def add_account(self, listAddress, address, imapserver, password): - cursor = self.conn.cursor() - cursor.execute("INSERT INTO accounts (list, address, imapserver, password) VALUES (?, ?, ?, ?)", \ - (listAddress, address, imapserver, password)) - self.conn.commit() + def add_account(self, listAddress, address, imapserver, password): + cursor = self.conn.cursor() + cursor.execute("INSERT INTO accounts (list, address, imapserver, password) VALUES (?, ?, ?, ?)", \ + (listAddress, address, imapserver, password)) + self.conn.commit() - def remove_account(self, listAddress, address): - cursor = self.conn.cursor() - cursor.execute("DELETE FROM accounts WHERE list=? AND address=?", (listAddress, address)) - self.conn.commit() + def remove_account(self, listAddress, address): + cursor = self.conn.cursor() + cursor.execute("DELETE FROM accounts WHERE list=? AND address=?", (listAddress, address)) + self.conn.commit() - def get_accounts(self, listAddress = None): - cursor = self.conn.cursor() - if listAddress: - cursor.execute("SELECT list, address, imapserver, password FROM accounts WHERE list=?", (listAddress,)); - else: - cursor.execute("SELECT list, address, imapserver, password FROM accounts"); - results = list() - for row in cursor: - listAddress = row[0] - address = row[1] - imapserver = row[2] - password = row[3] - results.append((listAddress, address, imapserver, password)) - return results + def get_accounts(self, listAddress = None): + cursor = self.conn.cursor() + if listAddress: + cursor.execute("SELECT list, address, imapserver, password FROM accounts WHERE list=?", (listAddress,)); + else: + cursor.execute("SELECT list, address, imapserver, password FROM accounts"); + results = list() + for row in cursor: + listAddress = row[0] + address = row[1] + imapserver = row[2] + password = row[3] + results.append((listAddress, address, imapserver, password)) + return results - def get_recipients_for_list(self, listAddress): - cursor = self.conn.cursor() - cursor.execute("SELECT address FROM accounts WHERE list=?", (listAddress,)); - results = list() - for row in cursor: - results.append(row[0]) - return results + def get_recipients_for_list(self, listAddress): + cursor = self.conn.cursor() + cursor.execute("SELECT address FROM accounts WHERE list=?", (listAddress,)); + results = list() + for row in cursor: + results.append(row[0]) + return results - def ping(self, listAddress, address, time, uuid): - cursor = self.conn.cursor() - cursor.execute("INSERT INTO pings (listAddress, address, timesent, uuid) VALUES (?, ?, ?, ?)", \ - (listAddress, address, time, uuid)) - self.conn.commit() + def ping(self, listAddress, address, time, uuid): + cursor = self.conn.cursor() + cursor.execute("INSERT INTO pings (listAddress, address, timesent, uuid) VALUES (?, ?, ?, ?)", \ + (listAddress, address, time, uuid)) + self.conn.commit() - def pong(self, address, time, uuid): - cursor = self.conn.cursor() - cursor.execute("UPDATE pings SET timereceived=? WHERE address=? AND uuid=?", \ - (time, address, uuid)) - self.conn.commit() + def pong(self, address, time, uuid): + cursor = self.conn.cursor() + cursor.execute("UPDATE pings SET timereceived=? WHERE address=? AND uuid=?", \ + (time, address, uuid)) + self.conn.commit() - def get_missing_pongs(self, listAddress = None): - '''Return a list of tupls of missing pongs. - Each tupl contains (listAddress, uuid, address, time since send)''' - cursor = self.conn.cursor() - if listAddress: - cursor.execute("SELECT listAddress, uuid, address, timesent FROM pings WHERE timereceived IS NULL AND listAddress = ?", (listAddress,)); - else: - cursor.execute("SELECT listAddress, uuid, address, timesent FROM pings WHERE timereceived IS NULL"); - now = datetime.now() - results = list() - for row in cursor: - listAddress = row[0] - uuid = row[1] - address = row[2] - delta = now - row[3] - results.append((listAddress, uuid, address, delta)) - return results + def get_missing_pongs(self, listAddress = None): + '''Return a list of tupls of missing pongs. + Each tupl contains (listAddress, uuid, address, time since send)''' + cursor = self.conn.cursor() + if listAddress: + cursor.execute("SELECT listAddress, uuid, address, timesent FROM pings WHERE timereceived IS NULL AND listAddress = ?", (listAddress,)); + else: + cursor.execute("SELECT listAddress, uuid, address, timesent FROM pings WHERE timereceived IS NULL"); + now = datetime.now() + results = list() + for row in cursor: + listAddress = row[0] + uuid = row[1] + address = row[2] + delta = now - row[3] + results.append((listAddress, uuid, address, delta)) + return results diff --git a/emailcanary/email-digest-sender.py b/emailcanary/email-digest-sender.py index fa4fcb0..e1aad38 100644 --- a/emailcanary/email-digest-sender.py +++ b/emailcanary/email-digest-sender.py @@ -10,29 +10,29 @@ youve_got_mail = False all_subjects = {} for account in ACCOUNTS: - mail = emailutils.get_imap(account[0], account[1], account[2]) - these_subjects = [] - for uid in emailutils.get_mail_uids(mail): - message = emailutils.get_message(mail, uid) - these_subjects.append(message['subject']) - youve_got_mail = True - all_subjects[account[1]] = these_subjects + mail = emailutils.get_imap(account[0], account[1], account[2]) + these_subjects = [] + for uid in emailutils.get_mail_uids(mail): + message = emailutils.get_message(mail, uid) + these_subjects.append(message['subject']) + youve_got_mail = True + all_subjects[account[1]] = these_subjects if youve_got_mail: - msg = "" - for account in all_subjects: - msg = msg + "# Messages for %s\n" % account - for subject in all_subjects[account]: - msg = msg + " * %s\n" % subject - msg = msg + "\n" + msg = "" + for account in all_subjects: + msg = msg + "# Messages for %s\n" % account + for subject in all_subjects[account]: + msg = msg + " * %s\n" % subject + msg = msg + "\n" - digest_message = message.Message() - digest_message.set_payload(msg) - digest_message['From'] = DESTINATION - digest_message['To'] = DESTINATION - digest_message['Subject'] = "Email Digest" + digest_message = message.Message() + digest_message.set_payload(msg) + digest_message['From'] = DESTINATION + digest_message['To'] = DESTINATION + digest_message['Subject'] = "Email Digest" - s = smtplib.SMTP_SSL('localhost', 2465) - s.sendmail(DESTINATION, DESTINATION, digest_message.as_string()) - s.quit() + s = smtplib.SMTP_SSL('localhost', 2465) + s.sendmail(DESTINATION, DESTINATION, digest_message.as_string()) + s.quit() |