X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=update-web-status.py;h=78e3d71e33a5de4b072a9ed68e230cc9c5da8a23;hb=23bca293edd1f88e9bed2930e216ee4d0c38bcb0;hp=a2e4bebb82359e8d556ef51492f2f88985c3249a;hpb=a84674d4acd374c1190633b94ceba6e9865352ec;p=svn42.git diff --git a/update-web-status.py b/update-web-status.py index a2e4beb..78e3d71 100755 --- a/update-web-status.py +++ b/update-web-status.py @@ -195,9 +195,8 @@ else: uwscfg = UWSConfig() #socket.setdefaulttimeout(10.0) #affects all new Socket Connections (urllib as well) -#RE_STATUS = re.compile(r'Status: (\w+), idle') -RE_PRESENCE = re.compile(r'Presence: (yes|no)') -RE_BUTTON = re.compile(r'button\d?') +RE_PRESENCE = re.compile(r'Presence: (yes|no)(?:, (opened|closed), (.+))?') +RE_BUTTON = re.compile(r'PanicButton|button\d?') while True: try: if not os.path.exists(uwscfg.tracker_socket): @@ -209,6 +208,8 @@ while True: conn = os.fdopen(sockhandle.fileno()) #sockhandle.send("listen\n") #sockhandle.send("status\n") + last_status=None + unixts_panic_button=None while True: line = conn.readline() logging.debug("Got Line: " + line) @@ -221,16 +222,28 @@ while True: m = RE_PRESENCE.match(line) if not m is None: status = m.group(1) - if status == "yes": + last_status=(status == "yes") + unixts_panic_button=None + if last_status: displayOpen() else: displayClosed() continue + m = RE_BUTTON.match(line) if not m is None: displayPanic() + unixts_panic_button=time.time() continue - + + if not last_status is None and not unixts_panic_button is None and time.time() - unixts_panic_button > 3600: + unixts_panic_button=None + if last_status: + displayOpen() + else: + displayClosed() + continue + except Exception, ex: logging.error("main: "+str(ex)) try: