· 5 years ago · Nov 21, 2020, 05:18 AM
1#! /usr/bin/python3
2import subprocess
3import json
4import time
5
6def query_status():
7 proc = subprocess.Popen(["curl", "--header", "Content-Type: application/json", "--header", "X-Api-Key: {your api key}", "http://{ip address}/api/printer"], stdout=subprocess.PIPE)
8 (out, err) = proc.communicate()
9 return out
10
11if query_status() == b"Printer is not operational":
12 print("Printer is not operational bitch!")
13 subprocess.Popen(["curl","-d", '{"command": "connect"}', "-H", "Content-Type: application/json", "-H", "X-Api-Key: {your api key}", "http://{ip address}/api/connection"], stdout=subprocess.PIPE)
14 print("Sleeping for 5 seconds")
15 time.sleep(5)
16
17printer_status = query_status()
18
19if printer_status == b"Printer is not operational":
20 exit()
21
22state = json.loads(printer_status)["state"]["flags"]
23
24if not state["printing"] and state["ready"]:
25 subprocess.run(["sudo", "reboot", "now"])
26 print("Restart now :)")