]> git.llucax.com Git - personal/ion3-config.git/blob - psi_status_server.py
aa4846c980ffc5d638a12d7b0d9768e039e1b47d
[personal/ion3-config.git] / psi_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 psi_profile = 'luca'
11
12 # MAY config
13 no_template = 'nada nuevo'
14 yes_template = '%(total)s mensaje%(pl)s nuevo%(pl)s (de %(jids)s)'
15 join_str = ' '
16 default_secs = 1
17
18 # Probably you don't want to touch this
19 psi_profile_dir = os.path.join(os.getenv('HOME'), '.psi', 'profiles', psi_profile)
20 events_files_glob = 'events-*.xml'
21 event_regex = re.compile(r'.*<jid>(.*)<\/jid>.*')
22
23 os.chdir(psi_profile_dir)
24
25 secs = default_secs
26
27 if len(sys.argv) > 1:
28         secs = int(sys.argv[1])
29
30 print 'start'
31 while True:
32         events = []
33         for f in glob.glob(events_files_glob):
34                 l = event_regex.findall(file(f).read())
35                 if l:
36                         events.extend(l)
37         if events:
38                 print yes_template % dict(
39                         total = len(events),
40                         pl    = 's' if len(events) > 1 else '',
41                         jids  = join_str.join(frozenset(events))
42                 )
43         else:
44                 print no_template
45         sys.stdout.flush()
46         time.sleep(secs)
47