diff --git a/moonraker/moonraker.py b/moonraker/moonraker.py index c7687d6..c327211 100644 --- a/moonraker/moonraker.py +++ b/moonraker/moonraker.py @@ -287,13 +287,7 @@ class Server: return if send_id: self.init_list.append("identified") - self.klippy_info = result - # Update filemanager fixed paths - fixed_paths = {k: result[k] for k in - ['klipper_path', 'python_path', - 'log_file', 'config_file']} - file_manager = self.lookup_plugin('file_manager') - file_manager.update_fixed_paths(fixed_paths) + self.klippy_info = dict(result) self.klippy_state = result.get('state', "unknown") if self.klippy_state == "ready": await self._verify_klippy_requirements() diff --git a/moonraker/plugins/file_manager.py b/moonraker/plugins/file_manager.py index ce60ddc..a377605 100644 --- a/moonraker/plugins/file_manager.py +++ b/moonraker/plugins/file_manager.py @@ -44,6 +44,9 @@ class FileManager: self.server.register_upload_handler("/server/files/upload") self.server.register_upload_handler("/api/files/local") + self.server.register_event_handler( + "server:klippy_ready", self._update_fixed_paths) + # Register Klippy Configuration Path config_path = config.get('config_path', None) if config_path is not None: @@ -52,11 +55,15 @@ class FileManager: raise config.error( "Option 'config_path' is not a valid directory") - def update_fixed_paths(self, paths): + def _update_fixed_paths(self): + kinfo = self.server.get_klippy_info() + paths = {k: kinfo.get(k) for k in + ['klipper_path', 'python_path', + 'log_file', 'config_file']} if paths == self.fixed_path_args: # No change in fixed paths return - self.fixed_path_args = dict(paths) + self.fixed_path_args = paths str_paths = "\n".join([f"{k}: {v}" for k, v in paths.items()]) logging.debug(f"\nUpdating Fixed Paths:\n{str_paths}")