Files
bg_shutdown/client/bs_shutdown.py
2026-02-25 11:03:40 +00:00

61 lines
1.5 KiB
Python

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():
global LAST_VALUE
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 " + str(time - now) + " seconds")
# subprocess.run(["shutdown", "/s", "/t", (time - now), " "])
print(time - now)
if __name__ == '__main__':
update()
time.sleep(30)