IMAP mailchecker

This commit is contained in:
enkore 2013-02-23 15:19:11 +01:00
parent 761034dd01
commit eb1ce22610

View File

@ -6,32 +6,22 @@ import json
from datetime import datetime,timedelta from datetime import datetime,timedelta
import imaplib import imaplib
from i3pystatus import IntervalModule from i3pystatus.mail import Backend
class MailChecker(IntervalModule): class IMAP(Backend):
""" """
This class handles mailservers and outputs i3status compatible This class handles IMAP mailservers. The mail server
json data for the accumulated unread count. The mail server functionality is implemented in the subclass IMAP.MailServer
functionality is implemented in the subclass MailChecker.MailServer
""" """
settings = ("color", "servers") settings = required = ("servers",)
required = ("servers",)
color = "#ff0000"
def init(self): def init(self):
self.server_list = list(map(MailChecker.MailServer, self.servers)) self.server_list = list(map(IMAP.MailServer, self.servers))
def run(self): @property
unread = sum(map(lambda server: server.get_unread_count(), self.server_list)) def unread(self):
return sum(map(lambda server: server.get_unread_count(), self.server_list))
if unread:
self.output = {
"full_text" : "%d new email%s" % (unread, ("s" if unread > 1 else "")),
"name" : "newmail",
"urgent" : "true",
"color" : self.color
}
class MailServer: class MailServer:
""" """