diff --git a/server.py b/server.py index 33aae91..a8666ed 100644 --- a/server.py +++ b/server.py @@ -1,6 +1,7 @@ from seleniumwire import webdriver # Import from seleniumwire from seleniumwire.utils import decode from time import sleep +from collections import deque import json import re @@ -16,37 +17,43 @@ options.add_argument('--disable-dev-shm-usage') # Create a new instance of the Chrome driver driver = webdriver.Chrome(options=options) - +q = deque() def interceptor(request, response): # A response interceptor takes two args if 'ws-travis.dus.com/socket.io/?EIO=3&transport=polling' in request.url : body = decode(response.body, response.headers.get('Content-Encoding', 'identity')) x = re.split("\d\d\d:\d\d\/dus,", body.decode("utf-8")) - if len(x) > 1: - for i in [i for i in x if i]: + for i in [i for i in x if i]: + try: j = json.loads(i) handleJson(j) - else: - j = json.loads(x) - handleJson(j) + except ValueError: + print ("\nErr: ", i, "\n") + if i.find("online-level") > 0: + j = json.loads(i[:i.rfind(']') + 1]) + handleJson(j) + def handleJson(jsonObj): - if 'online-level' in jsonObj: - typ = jsonObj[1]["LevelValues"][0]["Type"] - values = jsonObj[1]["LevelValues"][0]["Values"] - NmtId = jsonObj[1]["NmtId"] - time = jsonObj[1]["Time"] - - print ("\n", jsonObj) - print ("[", time, "]: ", "NmtId: ", NmtId, " Typ: ", typ, " Wert: ", values) - print ("\n") + if isinstance(jsonObj, list): + if 'online-level' in jsonObj: + typ = jsonObj[1]["LevelValues"][0]["Type"] + value = jsonObj[1]["LevelValues"][0]["Values"] + NmtId = jsonObj[1]["NmtId"] + time = jsonObj[1]["Time"] + + q.append([typ, value, NmtId, time]) driver.response_interceptor = interceptor -# Go to the Google home page driver.get('https://dus-travis.dus.com/') -sleep(1000) +while True: + sleep(1) + for i in range(1, len(q)): + a = q.popleft() + print ("[", a[3], "]: ", "NmtId: ", a[2] , " Typ: ", a[0], " Wert: ", a[1]) +