Set 'error' icon when there are any account errors
[rox-postal.git] / mbox_check.py
blobc020e6d4977b3c415333e41a46b4e66a54c7d219
1 """
2 mbox_check.py - A mbox/maildir checker
4 Copyright 2006 Kenneth Hayber <ken@hayber.us>,
5 All rights reserved.
6 """
8 import mailbox, re
9 import os
11 from checker import Checker
12 class MBOXChecker(Checker):
13 def __init__(self, config=None):
14 Checker.__init__(self, config)
15 self.protocol = 'MBOX'
16 try:
17 self.filename = config['filename']
18 except:
19 self.filename = os.getenv('MAIL', 'none')
21 def check(self):
22 count = 0
23 seen = 0
25 try:
26 file = open(self.filename, "r")
27 except:
28 self.blocker.trigger()
29 return
31 for line in file.xreadlines():
32 if re.search("^From (\S*) ", line):
33 count += 1
34 if re.search("^Status:.*R.*", line):
35 seen += 1
36 yield None
38 self.unseen = count - seen
39 if self.unseen > 0:
40 self.results = "%s (%d/%d)\n" % (self.name, self.unseen, count)
41 else:
42 self.results = ""
44 file.close()
45 self.blocker.trigger()