def listen_to_octoprint(settings, q, on_heartbeat): def on_error(ws, error): print("!!! Error: {}".format(error)) def on_message(ws, message_type, message_payload): def __deplete_queue__(q): while q.qsize() > 10: q.get_nowait() if type(message_payload) is not dict: return __deplete_queue__(q) message_payload.update({"origin": "octoprint"}) q.put(json.dumps(message_payload)) if "init_client" in dir(octoprint_client): # OctoPrint <= 1.3.2 octoprint_client.init_client(settings) socket = octoprint_client.connect_socket(on_error=on_error, on_heartbeat=on_heartbeat, on_message=on_message) else: host = settings.get(["server", "host"]) host = host if host != "0.0.0.0" else "127.0.0.1" port = settings.getInt(["server", "port"]) apikey = settings.get(["api", "key"]) baseurl = octoprint_client.build_base_url(host=host, port=port) client = octoprint_client.Client(baseurl, apikey) client.create_socket(on_error=on_error, on_heartbeat=on_heartbeat, on_message=on_message)
def client(ctx, apikey, host, port, httpuser, httppass, https, prefix): """Basic API client.""" try: if not host or not port or not apikey: settings = init_settings( get_ctx_obj_option(ctx, "basedir", None), get_ctx_obj_option(ctx, "configfile", None)) if not host: host = settings.get(["server", "host"]) host = host if host != "0.0.0.0" else "127.0.0.1" if not port: port = settings.getInt(["server", "port"]) if not apikey: apikey = settings.get(["api", "key"]) baseurl = octoprint_client.build_base_url(https=https, httpuser=httpuser, httppass=httppass, host=host, port=port, prefix=prefix) ctx.obj.client = octoprint_client.Client(baseurl, apikey) except FatalStartupError as e: click.echo(e.message, err=True) click.echo("There was a fatal error initializing the client.", err=True) ctx.exit(-1)
def create_client(settings=None, apikey=None, host=None, port=None, httpuser=None, httppass=None, https=False, prefix=None): assert (host is not None or settings is not None) assert (port is not None or settings is not None) assert (apikey is not None or settings is not None) if not host: host = settings.get(["server", "host"]) host = host if host != "0.0.0.0" else "127.0.0.1" if not port: port = settings.getInt(["server", "port"]) if not apikey: apikey = settings.get(["api", "key"]) baseurl = octoprint_client.build_base_url(https=https, httpuser=httpuser, httppass=httppass, host=host, port=port, prefix=prefix) return octoprint_client.Client(baseurl, apikey)
def __init__(self, printer_id, url, x_api_key, camera_rotation, printer_name, printer_type, horizontal_flip, vertical_flip): self.printer_id = printer_id self.client = octoprint_client.Client("http://" + url, x_api_key) self.camera_rotation = camera_rotation self.printer_name = printer_name self.printer_type = printer_type self.horizontal_flip = horizontal_flip self.vertical_flip = vertical_flip self.socket = None self.is_connected = False
def init(self, host, port, apikey): Logger.info("Client: Connecting to Octoprint") Logger.debug("Client: Host: " + str(host)) Logger.debug("Client: Port: " + str(port)) Logger.debug("Client: API Key: " + str(apikey)) self.octoprintClient = octoprint_client.Client( octoprint_client.build_base_url(https=None, httpuser=None, httppass=None, host=host, port=port, prefix=None), apikey) #self.octoprintClient.apikey = apikey #self.octoprintClient.baseurl = self.octoprintClient.build_base_url(https=None, httpuser=None, httppass=None, host=host, port=port, prefix=None) Clock.schedule_once(self.connect)
def listen_to_octoprint(settings, q): def on_connect(ws): print(">>> Connected!") def on_close(ws): print(">>> Oh No! Connection closed! What happened?") def on_error(ws, error): print("!!! Error: {}".format(error)) def on_heartbeat(ws): q.put(json.dumps({'hb': {'ipAddrs': ip_addr()}})) def on_message(ws, message_type, message_payload): def __deplete_queue__(q): while q.qsize() > 10: q.get_nowait() if type(message_payload) is not dict: return __deplete_queue__(q) q.put(json.dumps(message_payload)) if "init_client" in dir(octoprint_client): # OctoPrint <= 1.3.2 octoprint_client.init_client(settings) socket = octoprint_client.connect_socket(on_connect=on_connect, on_close=on_close, on_error=on_error, on_heartbeat=on_heartbeat, on_message=on_message) else: host = settings.get(["server", "host"]) host = host if host != "0.0.0.0" else "127.0.0.1" port = settings.getInt(["server", "port"]) apikey = settings.get(["api", "key"]) baseurl = octoprint_client.build_base_url(host=host, port=port) client = octoprint_client.Client(baseurl, apikey) client.create_socket(on_connect=on_connect, on_close=on_close, on_error=on_error, on_heartbeat=on_heartbeat, on_message=on_message)