From 1ae671f61f1010cf49e08eeb01afb6fa283c68d1 Mon Sep 17 00:00:00 2001
From: Kevin O'Connor <kevin@koconnor.net>
Date: Tue, 11 Aug 2020 21:33:50 -0400
Subject: [PATCH] webhooks: Add klippy state to webhooks get_status() method

Clients can now subscribe to the webhooks get_status() info to
determine if the printer state changes.  It is no longer needed to
send a message to all clients on a shutdown transition.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
---
 klippy/webhooks.py | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/klippy/webhooks.py b/klippy/webhooks.py
index 358e96463..352ee761d 100644
--- a/klippy/webhooks.py
+++ b/klippy/webhooks.py
@@ -262,13 +262,6 @@ class WebHooks:
         self.register_endpoint("emergency_stop", self._handle_estop_request)
         self.sconn = ServerSocket(self, printer)
 
-        # Register Events
-        printer.register_event_handler(
-            "klippy:shutdown", self._notify_shutdown)
-
-    def _notify_shutdown(self):
-        self.call_remote_method("set_klippy_shutdown")
-
     def register_endpoint(self, path, callback):
         if path in self._endpoints:
             raise WebRequestError("Path already registered to an endpoint")
@@ -310,10 +303,10 @@ class WebHooks:
         self.call_remote_method(method, **kwargs)
         return ""
 
-    def get_status(self, eventtime=0.):
-        return {
-            "action_call_remote_method": self._action_call_remote_method
-        }
+    def get_status(self, eventtime):
+        state_message, state = self.printer.get_state_message()
+        return {'state': state, 'state_message': state_message,
+                "action_call_remote_method": self._action_call_remote_method}
 
 class GCodeHelper:
     def __init__(self, printer):