From 75fcad26fd12f0b79a81fd4d45d5e6e6a7e6388a Mon Sep 17 00:00:00 2001 From: enkore Date: Thu, 28 Aug 2014 13:11:20 +0200 Subject: [PATCH] Better fix for #102 Rationale: -other backends don't require internet access -displaying last unread count w/o connection seems reasonable -however: error handling in get_connection() is quite wildcardy, which is no good. Should be fixed asap. Introducing a core exception for directly displaying errors may be a good idea at this point for next. --- i3pystatus/mail/__init__.py | 1 - i3pystatus/mail/imap.py | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/i3pystatus/mail/__init__.py b/i3pystatus/mail/__init__.py index 883abfb..f16282e 100644 --- a/i3pystatus/mail/__init__.py +++ b/i3pystatus/mail/__init__.py @@ -41,7 +41,6 @@ class Mail(IntervalModule): for backend in self.backends: pass - @require(internet) def run(self): unread = sum(map(lambda backend: backend.unread, self.backends)) diff --git a/i3pystatus/mail/imap.py b/i3pystatus/mail/imap.py index 2f99590..fdd0206 100644 --- a/i3pystatus/mail/imap.py +++ b/i3pystatus/mail/imap.py @@ -26,6 +26,7 @@ class IMAP(Backend): imap_class = imaplib.IMAP4 connection = None + last = 0 def init(self): if self.ssl: @@ -51,9 +52,8 @@ class IMAP(Backend): def unread(self): conn = self.get_connection() if conn: - return len(conn.search(None, "UnSeen")[1][0].split()) - else: - sys.stderr.write("no connection") + self.last = len(conn.search(None, "UnSeen")[1][0].split()) + return self.last Backend = IMAP