# pylint: disable=C0111,R0903 """Displays the result of a notmuch count query default : unread emails which path do not contained "Trash" (notmuch count "tag:unread AND NOT path:/.*Trash.*/") Parameters: * notmuch_count.query: notmuch count query to show result Errors: if the notmuch query failed, the shown value is -1 Dependencies: notmuch (https://notmuchmail.org/) """ import bumblebee.input import bumblebee.output import bumblebee.engine import os class Module(bumblebee.engine.Module): def __init__(self, engine, config): super(Module, self).__init__(engine, config, bumblebee.output.Widget(full_text=self.output) ) self._notmuch_count_query = self.parameter("query", "tag:unread AND NOT path:/.*Trash.*/") self._notmuch_count = self.count_notmuch() def output(self, widget): self._notmuch_count = self.count_notmuch() return str(self._notmuch_count) def state(self, widgets): if self._notmuch_count == 0: return "empty" return "items" def count_notmuch(self): try: notmuch_count_cmd = "notmuch count " + self._notmuch_count_query notmuch_count = int(bumblebee.util.execute(notmuch_count_cmd)) return notmuch_count except Exception: return -1 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4