From 3facc580a6d8093abc69b4ecf3f6343487ee457d Mon Sep 17 00:00:00 2001 From: fly Date: Thu, 16 Jan 2020 02:23:47 +0000 Subject: [PATCH] Added status report Signed-off-by: fly --- worldbuild-manager.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/worldbuild-manager.py b/worldbuild-manager.py index 6632066..1e2b2ed 100755 --- a/worldbuild-manager.py +++ b/worldbuild-manager.py @@ -102,7 +102,12 @@ try: action = "get" get = match.group(2) else: - print("WARNING: Recived invalid package") + match = re.match(r"(status) (n-pole|s-pole|[ew]\d{3}[ns]\d{2})", msg) + if match != None: + action = "status" + name = match.group(2) + else: + print("WARNING: Recived invalid package") if action == "set": if verbose: @@ -220,6 +225,33 @@ try: print("Asigning job on tile " + tile) c.send(tile.encode()) + elif action == "status": + if name == "n-pole" or name == "s-pole": + c.send(state[name]["status"].encode()) + else: + match = re.match(r"([ew])(\d{3})([ns])(\d{2})", name) + ew = match.group(1) + ew_val = int(match.group(2)) + ns = match.group(3) + ns_val = int(match.group(4)) + + ew_val_major = int(ew_val / 10) * 10 + if ew == "w": + if ew_val_major != ew_val: + ew_val_major += 10 + + ns_val_major = int(ns_val / 10) * 10 + if ns == "s": + if ns_val_major != ns_val: + ns_val_major += 10 + + name_major = ew + norm(ew_val_major, 3) + ns + norm(ns_val_major, 2) + if not name_major in state: + c.send("pending".encode()) + elif not name in state[name_major]: + c.send("pending".encode()) + else: + c.send(state[name_major][name]["status"].encode()) c.close() except IOError: print("WARNING: Recived invalid package")