diff --git a/i3pystatus/mail/notmuchmail.py b/i3pystatus/mail/notmuchmail.py new file mode 100644 index 0000000..b60b5b4 --- /dev/null +++ b/i3pystatus/mail/notmuchmail.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# note that this needs the notmuch python bindings. For more info see: +# http://notmuchmail.org/howto/#index4h2 +import notmuch +import json + +from i3pystatus.mail import Backend + +class NotmuchMailChecker(Backend): + """ + This class uses the notmuch python bindings to check for the + number of messages in the notmuch database with the tags "inbox" + and "unread" + """ + + settings = required = ("db_path",) + + def init(self): + self.db = notmuch.Database(self.db_path) + + @property + def unread(self): + return notmuch.Query(self.db, "tag:unread and tag:inbox").count_messages() diff --git a/i3pystatus/notmuchmail.py b/i3pystatus/notmuchmail.py deleted file mode 100644 index 18b13b8..0000000 --- a/i3pystatus/notmuchmail.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# note that this needs the notmuch python bindings. For more info see: -# http://notmuchmail.org/howto/#index4h2 -import notmuch -import json - -from i3pystatus import IntervalModule - -class NotmuchMailChecker(IntervalModule): - """ - This class uses the notmuch python bindings to check for the - number of messages in the notmuch database with the tags "inbox" - and "unread" - """ - - settings = required = ("db_path",) - - def run(self): - db = notmuch.Database(self.db_path) - unread = notmuch.Query(db, "tag:unread and tag:inbox").count_messages() - - if (unread == 0): - color = "#00FF00" - urgent = "false" - else: - color = "#ff0000" - urgent = "true" - - self.output = { - "full_text" : "%d new email%s" % (unread, ("s" if unread > 1 else "")), - "name" : "newmail", - "urgent" : urgent, - "color" : color - }