summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/status_script.py57
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)