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