import urllib.request import json import socket from datetime import datetime import subprocess DEFAULT_SHUTDOWN = "21:00" LAST_VALUE = 0 machine_name = socket.gethostname() url = "http://192.168.50.27:5000/lookup" payload = { "name": machine_name, } def get_data(): data = json.dumps(payload).encode("utf-8") req = urllib.request.Request( url, headers={"Content-Type": "application/json"}, data=data, method="POST" ) try: with urllib.request.urlopen(req, timeout=10) as response: data = response.read() json_data = json.loads(data) print(json_data) return json_data except: return None def to_seconds(t): return t.hour * 3600 + t.minute * 60 + t.second def update(): data = get_data() if data["noshutdown"] == 1: exit if data is None: time = to_seconds(datetime.strptime(DEFAULT_SHUTDOWN, "%H:%M").time()) else: time = to_seconds(datetime.strptime(data["time"], "%H:%M").time()) now = to_seconds(datetime.now().time()) if (time - now) < 0: exit if (time != LAST_VALUE and LAST_VALUE != 0): LAST_VALUE = time subprocess.run(["shutdown", "/a"]) print("new val detected") print("shutting down in " + (time - now) + " seconds") # subprocess.run(["shutdown", "/s", "/t", (time - now), " "]) print(time - now) if __name__ == '__main__': update() time.sleep(30)