#!/usr/bin/python import json import urllib import time import sys import os.path base_path = os.path.realpath(os.path.dirname(__file__)) base_path = os.path.join(base_path, '..') json_template = os.path.join(base_path, "template", "template.spaceapi.json") input_url = "http://beaglebone.local.sublab.org/" output_file = os.path.join(base_path, "public", "status.json") status_dict = { "open" : True , "closed" : False } sublab_status = json.load(open(json_template)) # What to set on unknown status sublab_status["open"] = False try: status_json = json.load(urllib.urlopen(input_url)) if time.time() <= status_json["door.lock"]["ts"] + 120: door_status = status_json["door.lock"]["text"] sublab_status["open"] = status_dict[door_status] except Exception: pass #sys.excepthook(*sys.exc_info()) #atomically place new status new_output_file = output_file + '.new' with open(new_output_file, "w") as status_file: status_file.write(json.dumps(sublab_status, sort_keys=True, indent=4)) os.rename(new_output_file, output_file)