From d9e353315aa6c3f7c75f9aa883c656b77cdd5e54 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 21 Jan 2023 09:52:49 -0800 Subject: Add function to temporarily mute errors from an account --- emailcanary/canary.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'emailcanary/canary.py') diff --git a/emailcanary/canary.py b/emailcanary/canary.py index 93e9d42..2be8ccf 100644 --- a/emailcanary/canary.py +++ b/emailcanary/canary.py @@ -26,7 +26,8 @@ class Canary: accounts = self.db.get_accounts(listAddress) if len(accounts) == 0: raise Exception("No receipients for listAddress '%s'", (listAddress,)) - for (listAddress, address, imapserver, password) in accounts: + result = [] + for (listAddress, address, imapserver, password, mute) in accounts: mail = emailutils.get_imap(imapserver, address, password) these_subjects = [] for uid in emailutils.get_mail_uids(mail): @@ -34,7 +35,9 @@ class Canary: if message is not None and self.processMessage(address, message): emailutils.delete_message(mail, uid) emailutils.close(mail) - return self.db.get_missing_pongs(listAddress) + if time.time() > mute: + result.extend(self.db.get_missing_pongs(listAddress, address)) + return result def processMessage(self, receipient, msg): match = re.match('.*Canary Email (.+)', msg['Subject']) -- cgit v1.2.3