diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/status_script.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/scripts/status_script.py b/scripts/status_script.py new file mode 100755 index 0000000..1c229e0 --- /dev/null +++ b/scripts/status_script.py @@ -0,0 +1,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) |