]> git.llucax.com Git - personal/ion3-config.git/blob - maildir_status_server.py
Bugfix: use default_secs seconds as interval if not provided in commandline.
[personal/ion3-config.git] / maildir_status_server.py
1 #!/usr/bin/env python2.5
2
3 import os
4 import re
5 import sys
6 import glob
7 import time
8
9 # MUST config
10 maildir = os.path.join(os.getenv('HOME'), 'Maildir')
11
12 # MAY config
13 no_template = 'nada nuevo'
14 yes_template = '%(name)s (%(messages)s)'
15 join_str = ' '
16 default_secs = 30
17
18 secs = default_secs
19
20 if len(sys.argv) > 1:
21         secs = int(sys.argv[1])
22
23 os.chdir(maildir)
24
25 folders = [f for f in glob.glob(os.path.join(maildir, '.*'))
26                 if not f.endswith('.historial')
27                         and os.path.exists(os.path.join(f, 'new'))]
28 folders.sort()
29 folders.insert(0, maildir)
30
31 while True:
32         new = []
33         for folder in folders:
34                 name = folder[len(maildir)+2:]
35                 if not name: name = 'INBOX'
36                 messages = len(glob.glob(os.path.join(folder, 'new', '*')))
37                 if messages:
38                         new.append((name, messages))
39         if new:
40                 print join_str.join([yes_template % dict(name=n, messages=m)
41                                 for (n,m) in new])
42         else:
43                 print no_template
44         sys.stdout.flush()
45         time.sleep(secs)
46