This repository has been archived on 2024-01-26. You can view files and clone it, but cannot push or open issues or pull requests.
hackerspace-status-api/state.py

52 lines
1,004 B
Python
Raw Permalink Normal View History

2013-11-19 02:33:03 +01:00
#!/usr/bin/python
import urllib2
import json
import time
import logging
fileName = "json"
2014-02-14 22:41:22 +01:00
url = "http://status.krautspace.de/status/button/"
2013-11-19 02:33:03 +01:00
data = None
# Raum Status abrufen
try:
response = urllib2.urlopen(url, None, 8)
except:
logging.exception("urllib2")
else:
# Status lessen
data = response.read(1)
2014-02-15 15:09:12 +01:00
# Data validieren
if len(data) != 1 or data not in ("0", "1"):
2013-11-19 02:33:03 +01:00
logging.exception("ungueltigen Zustand gelesen")
data = None
# JSON Vorlage einlesen
try:
fp = file(fileName)
raw = json.load(fp)
fp.close()
except:
logging.exception("file")
exit(1)
# Bereich in dem der Status steht
state = raw["state"]
# letzte Verarbeitungszeit setzen
2014-02-14 22:02:35 +01:00
state["lastchange"] = int(time.time())
2013-11-19 02:33:03 +01:00
# Status setzen
2014-02-15 15:09:12 +01:00
if data:
if data == "0":
state["open"] = False
2014-03-05 16:38:11 +01:00
state["message"] = "no human being on location"
2014-02-15 15:09:12 +01:00
else:
state["open"] = True
2014-03-05 16:38:11 +01:00
state["message"] = "open for public"
2013-11-19 02:33:03 +01:00
else:
2014-02-14 22:02:35 +01:00
state["open"] = None
2014-03-05 16:38:11 +01:00
state["message"] = "open for public"
2013-11-19 02:33:03 +01:00
# JSON Decodieren und ausgeben
print json.dumps(raw)