aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
Diffstat (limited to 'klippy')
-rw-r--r--klippy/extras/pause_resume.py31
-rw-r--r--klippy/extras/query_endstops.py2
-rw-r--r--klippy/gcode.py19
-rw-r--r--klippy/webhooks.py46
4 files changed, 31 insertions, 67 deletions
diff --git a/klippy/extras/pause_resume.py b/klippy/extras/pause_resume.py
index d734a994..65d0408c 100644
--- a/klippy/extras/pause_resume.py
+++ b/klippy/extras/pause_resume.py
@@ -19,27 +19,20 @@ class PauseResume:
self.gcode.register_command("CLEAR_PAUSE", self.cmd_CLEAR_PAUSE)
self.gcode.register_command("CANCEL_PRINT", self.cmd_CANCEL_PRINT)
webhooks = self.printer.lookup_object('webhooks')
- webhooks.register_endpoint(
- "pause_resume/cancel", self._handle_web_request)
- webhooks.register_endpoint(
- "pause_resume/pause", self._handle_web_request)
- webhooks.register_endpoint(
- "pause_resume/resume", self._handle_web_request)
+ webhooks.register_endpoint("pause_resume/cancel",
+ self._handle_cancel_request)
+ webhooks.register_endpoint("pause_resume/pause",
+ self._handle_pause_request)
+ webhooks.register_endpoint("pause_resume/resume",
+ self._handle_resume_request)
def handle_ready(self):
self.v_sd = self.printer.lookup_object('virtual_sdcard', None)
- def _handle_web_request(self, web_request):
- if web_request.get_method() != 'POST':
- raise web_request.error("Invalid Request Method")
- path = web_request.get_path()
- if path == "pause_resume/cancel":
- script = "CANCEL_PRINT"
- elif path == "pause_resume/pause":
- script = "PAUSE"
- elif path == "pause_resume/resume":
- script = "RESUME"
- else:
- raise web_request.error("Invalid Path")
- self.gcode.run_script(script)
+ def _handle_cancel_request(self, web_request):
+ self.gcode.run_script("CANCEL_PRINT")
+ def _handle_pause_request(self, web_request):
+ self.gcode.run_script("PAUSE")
+ def _handle_resume_request(self, web_request):
+ self.gcode.run_script("RESUME")
def get_status(self, eventtime):
return {
'is_paused': self.is_paused
diff --git a/klippy/extras/query_endstops.py b/klippy/extras/query_endstops.py
index b7fc2d04..0bbb11c2 100644
--- a/klippy/extras/query_endstops.py
+++ b/klippy/extras/query_endstops.py
@@ -22,8 +22,6 @@ class QueryEndstops:
def get_status(self, eventtime):
return {'last_query': {name: value for name, value in self.last_state}}
def _handle_web_request(self, web_request):
- if web_request.get_method() != 'GET':
- raise web_request.error("Invalid Request Method")
gc_mutex = self.printer.lookup_object('gcode').get_mutex()
toolhead = self.printer.lookup_object('toolhead')
with gc_mutex:
diff --git a/klippy/gcode.py b/klippy/gcode.py
index 7be5c547..91e78ffa 100644
--- a/klippy/gcode.py
+++ b/klippy/gcode.py
@@ -87,7 +87,7 @@ class GCodeParser:
webhooks.register_endpoint(
"gcode/restart", self._handle_remote_restart)
webhooks.register_endpoint(
- "gcode/firmware_restart", self._handle_remote_restart)
+ "gcode/firmware_restart", self._handle_remote_firmware_restart)
# Command handling
self.is_printer_ready = False
self.mutex = printer.get_reactor().mutex()
@@ -619,22 +619,13 @@ class GCodeParser:
gcmd.respond_info("\n".join(cmdhelp), log=False)
# Webhooks
def _handle_remote_help(self, web_request):
- if web_request.get_method() != 'GET':
- raise web_request.error("Invalid Request Method")
web_request.send(dict(self.gcode_help))
def _handle_remote_restart(self, web_request):
- if web_request.get_method() != 'POST':
- raise web_request.error("Invalid Request Method")
- path = web_request.get_path()
- if path == "gcode/restart":
- self.run_script('restart')
- elif path == "gcode/firmware_restart":
- self.run_script('firmware_restart')
+ self.run_script('restart')
+ def _handle_remote_firmware_restart(self, web_request):
+ self.run_script('firmware_restart')
def _handle_remote_script(self, web_request):
- if web_request.get_method() != 'POST':
- raise web_request.error("Invalid Request Method")
- script = web_request.get('script')
- self.run_script(script)
+ self.run_script(web_request.get('script'))
# Support reading gcode from a pseudo-tty interface
class GCodeIO:
diff --git a/klippy/webhooks.py b/klippy/webhooks.py
index dbe67cf2..e923e986 100644
--- a/klippy/webhooks.py
+++ b/klippy/webhooks.py
@@ -48,7 +48,6 @@ class WebRequest:
def __init__(self, base_request):
self.id = base_request['id']
self.path = base_request['path']
- self.method = base_request['method']
self.args = base_request['args']
self.response = None
@@ -71,9 +70,6 @@ class WebRequest:
def get_path(self):
return self.path
- def get_method(self):
- return self.method
-
def set_error(self, error):
self.response = error.to_dict()
@@ -285,8 +281,6 @@ class WebHooks:
web_request.send({'endpoints': self._endpoints.keys()})
def _handle_info_request(self, web_request):
- if web_request.get_method() != 'GET':
- raise web_request.error("Invalid Request Method")
state_message, state = self.printer.get_state_message()
klipper_path = os.path.normpath(os.path.join(
os.path.dirname(__file__), ".."))
@@ -299,8 +293,6 @@ class WebHooks:
web_request.send(response)
def _handle_estop_request(self, web_request):
- if web_request.get_method() != 'POST':
- raise web_request.error("Invalid Request Method")
self.printer.invoke_shutdown("Shutdown due to webhooks request")
def get_connection(self):
@@ -346,15 +338,13 @@ class StatusHandler:
"gcode:request_restart", self._handle_restart)
# Register webhooks
- webhooks.register_endpoint(
- "objects/list",
- self._handle_object_request)
- webhooks.register_endpoint(
- "objects/status",
- self._handle_status_request)
- webhooks.register_endpoint(
- "objects/subscription",
- self._handle_subscription_request)
+ webhooks.register_endpoint("objects/list", self._handle_object_request)
+ webhooks.register_endpoint("objects/status",
+ self._handle_status_request)
+ webhooks.register_endpoint("objects/subscription",
+ self._handle_subscription_request)
+ webhooks.register_endpoint("objects/list_subscription",
+ self._handle_list_subscription_request)
def _handle_ready(self):
eventtime = self.reactor.monotonic()
@@ -396,31 +386,23 @@ class StatusHandler:
return result
def _handle_object_request(self, web_request):
- if web_request.get_method() != 'GET':
- raise web_request.error("Invalid Request Method")
web_request.send(dict(self.available_objects))
def _handle_status_request(self, web_request):
- if web_request.get_method() != 'GET':
- raise web_request.error("Invalid Request Method")
args = web_request.get_args()
eventtime = self.reactor.monotonic()
result = self._process_status_request(args, eventtime)
web_request.send(result)
def _handle_subscription_request(self, web_request):
- method = web_request.get_method()
- if method == 'POST':
- # add a subscription
- args = web_request.get_args()
- if args:
- self.add_subscripton(args)
- else:
- raise web_request.error("Invalid argument")
+ args = web_request.get_args()
+ if args:
+ self.add_subscripton(args)
else:
- # get subscription info
- result = dict(self.subscriptions)
- web_request.send(result)
+ raise web_request.error("Invalid argument")
+
+ def _handle_list_subscription_request(self, web_request):
+ web_request.send(dict(self.subscriptions))
def add_subscripton(self, new_sub):
if not new_sub: