summaryrefslogtreecommitdiff
path: root/scripts/status_script.py
blob: 1c229e00c9f2a3b169c97968e1c57f51dada9444 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/python

import urllib
import contextlib
import json
import time
import os

class SublabStatus(object):
    json = None
    def get_json(self):
        if self.json is not None:
            return self.json

        with contextlib.closing(urllib.urlopen('http://taifun.local.sublab.org/subcan.json')) as response:
            self.json = json.load(response)
        return self.json

    def door_status(self):
        self.get_json()
        door_status = self.json['door.lock']

        if door_status['ts'] + 120 < time.time():
            return 'unknown'

        if not door_status['value']:
            return 'open'
        else:
            return 'closed'

if __name__ == '__main__':
    s = SublabStatus()
    if s.door_status() == 'open':
        colors = ('#0f0', '#222')
    elif s.door_status() == 'closed':
        colors = ('#222', '#f00')
    else:
        colors = ('#222', '#222')

    css = '''
span.sublabopen {
    color: %s;
}


span.sublabclosed {
    color: %s;
}
''' % colors

    path = os.path.realpath(os.path.dirname(__file__))
    path = os.path.join(path, '..', 'public', 'css', 'sublab.status.css')
    path_new = path + '.new'

    with open(path_new, 'w') as css_file:
        css_file.write(css)
    os.rename(path_new, path)