diff --git a/i3pystatus/mail/__init__.py b/i3pystatus/mail/__init__.py index e683f0e..330494c 100644 --- a/i3pystatus/mail/__init__.py +++ b/i3pystatus/mail/__init__.py @@ -43,6 +43,10 @@ class Mail(IntervalModule): pass def run(self): + """ + Returns the sum of unread messages across all registered backends + """ + unread = sum(map(lambda backend: backend.unread, self.backends)) if not unread: diff --git a/i3pystatus/mail/notmuchmail.py b/i3pystatus/mail/notmuchmail.py index 00e99c0..bd3ffe3 100644 --- a/i3pystatus/mail/notmuchmail.py +++ b/i3pystatus/mail/notmuchmail.py @@ -35,11 +35,12 @@ class Notmuch(Backend): self.db_path = config.get("database", "path") - self.db = notmuch.Database(self.db_path) - @property def unread(self): - return notmuch.Query(self.db, "tag:unread and tag:inbox").count_messages() + db = notmuch.Database(self.db_path) + result = notmuch.Query(db, "tag:unread and tag:inbox").count_messages() + db.close() + return result Backend = Notmuch