# 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