bumblebee-status/modules/contrib/notmuch_count.py

52 lines
1.4 KiB
Python
Raw Normal View History

2020-04-18 16:35:45 +02:00
# pylint: disable=C0111,R0903
"""Displays the result of a notmuch count query
2020-04-18 16:36:14 +02:00
default : unread emails which path do not contained 'Trash' (notmuch count 'tag:unread AND NOT path:/.*Trash.*/')
2020-04-18 16:35:45 +02:00
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)
)
2020-04-18 16:36:14 +02:00
self._notmuch_count_query = self.parameter('query', 'tag:unread AND NOT path:/.*Trash.*/')
2020-04-18 16:35:45 +02:00
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:
2020-04-18 16:36:14 +02:00
return 'empty'
return 'items'
2020-04-18 16:35:45 +02:00
def count_notmuch(self):
try:
2020-04-18 16:36:14 +02:00
notmuch_count_cmd = 'notmuch count ' + self._notmuch_count_query
2020-04-18 16:35:45 +02:00
notmuch_count = int(bumblebee.util.execute(notmuch_count_cmd))
return notmuch_count
except Exception:
return -1
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4