mirror of
https://github.com/Tengo10/fabaccess_klipper.git
synced 2025-03-12 15:01:43 +01:00
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
import logging
|
|
import requests
|
|
|
|
|
|
class FabCon:
|
|
def __init__(self, config):
|
|
self.printer = printer = config.get_printer()
|
|
self.api_ip = config.get('ip')
|
|
self.api_key = config.get('key', '')
|
|
self.machine = config.get('machine')
|
|
self.in_use = False
|
|
|
|
|
|
self.printer.register_event_handler("action:cancel",
|
|
self._handle_free)
|
|
self.printer.register_event_handler("action:start",
|
|
self._handle_check)
|
|
self.printer.register_event_handler("action:complete",
|
|
self._handle_free)
|
|
self.printer.register_event_handler("klippy:ready",
|
|
self._handle_startup)
|
|
|
|
def _handle_check(self):
|
|
logging.info("FABACCESS CHECK")
|
|
try:
|
|
req = requests.get("http://" + self.api_ip + "/in_use/" + self.machine, timeout=1)
|
|
if req.text == "in_use":
|
|
logging.info("FABACCESS Machine in Use, Proceeding")
|
|
self.in_use = True
|
|
elif req.text == "free":
|
|
logging.info("FABACCESS Machine not registered to User, Canceling")
|
|
self.printer.invoke_shutdown("FABACCESS Machine not registered to User")
|
|
except:
|
|
logging.warning("FABACCESS ERROR")
|
|
|
|
def _handle_free(self):
|
|
logging.info("FABACCESS FREE")
|
|
try:
|
|
req = requests.get("http://" + self.api_ip + "/free/" + self.machine, timeout=1)
|
|
logging.info("FABACCESS Machine freed")
|
|
self.in_use = False
|
|
except:
|
|
logging.warning("FABACCESS ERROR")
|
|
|
|
def _handle_startup(self):
|
|
logging.info("FABACCESS LOADED")
|
|
|
|
def get_status(self, eventtime):
|
|
data = {
|
|
'in_use': self.in_use
|
|
}
|
|
return data
|
|
|
|
|
|
def load_config(config):
|
|
return FabCon(config) |