@@ -59,7 +59,6 @@ def __init__(self, config):
5959 self .patch_bed_mesh ()
6060 self .patch_objects_list ()
6161 self .patch_mainsail ()
62- self .patch_gcode_paths ()
6362 logging .info ('Completed Kobra patching! Yay!' )
6463
6564 # Trigger LAN mode warning if needed
@@ -172,39 +171,53 @@ def mqtt_on_message(client, userdata, msg):
172171
173172
174173 def patch_status (self , status ):
175-
176174 if self .is_goklipper_running ():
177- if 'print_stats' in status and 'state' in status ['print_stats' ]:
178- state = status ['print_stats' ]['state' ]
179- logging .info (f'[Kobra] Converted Kobra state { state } ' )
180175
181- if state .lower () == 'heating' :
182- state = 'printing'
183- if state .lower () == 'leveling' :
184- state = 'printing'
185- if state .lower () == 'onpause' :
186- state = 'paused'
176+ if 'print_stats' in status :
177+ if 'state' in status ['print_stats' ]:
178+ # Convert Kobra state
179+ state = status ['print_stats' ]['state' ]
180+ logging .info (f'[Kobra] Converted Kobra state { state } ' )
181+
182+ if state .lower () == 'heating' :
183+ state = 'printing'
184+ if state .lower () == 'leveling' :
185+ state = 'printing'
186+ if state .lower () == 'onpause' :
187+ state = 'paused'
188+
189+ status ['print_stats' ]['state' ] = state
187190
188- status ['print_stats' ]['state' ] = state
191+ # Inject in 'idle_timeout' for Fluidd
192+ if 'idle_timeout' not in status :
193+ status ['idle_timeout' ] = {}
189194
190- if 'idle_timeout' not in status :
191- status ['idle_timeout' ] = {}
195+ status ['idle_timeout' ]['state' ] = state
196+
197+ if 'filename' in status ['print_stats' ]:
198+ # Remove path prefix from filename
199+ status ['print_stats' ]['filename' ] = status ['print_stats' ]['filename' ].replace ('/useremain/app/gk/gcodes/' , '' )
192200
193- status ['idle_timeout' ]['state' ] = state
194201 if 'virtual_sdcard' in status :
195202 if 'total_layer' in status ['virtual_sdcard' ]:
203+ # Save layer count for later
196204 self ._total_layer = status ['virtual_sdcard' ]['total_layer' ]
197205
198206 if 'current_layer' in status ['virtual_sdcard' ]:
199207 current_layer = status ['virtual_sdcard' ]['current_layer' ]
200208
209+ # Inject current and total layer count in 'info' for Mainsail / Fluidd
201210 if 'print_stats' not in status :
202211 status ['print_stats' ] = {}
203212 if 'info' not in status ['print_stats' ]:
204213 status ['print_stats' ]['info' ] = {}
205214
206215 status ['print_stats' ]['info' ]['current_layer' ] = current_layer
207216 status ['print_stats' ]['info' ]['total_layer' ] = self ._total_layer
217+
218+ if 'file_path' in status ['virtual_sdcard' ]:
219+ # Remove path prefix from file path
220+ status ['virtual_sdcard' ]['file_path' ] = status ['virtual_sdcard' ]['file_path' ].replace ('/useremain/app/gk/gcodes/' , '' )
208221
209222 return status
210223
@@ -316,10 +329,7 @@ def patch_mqtt_print(self):
316329 def wrap_run_gcode (original_run_gcode ):
317330 async def run_gcode (me , script , default = Sentinel .MISSING ):
318331 if self .is_goklipper_running () and script .startswith ('SDCARD_PRINT_FILE' ):
319- script = script .replace ('/useremain/app/gk/gcodes/' , '' )
320- script = script .replace ('useremain/app/gk/gcodes/' , '' )
321332 self ._total_layer = 0
322- print (script )
323333 filename = re .search ("FILENAME=\" ([^\" ]+)\" $" , script )
324334 filename = filename [1 ] if filename else None
325335 if filename and self .is_using_mqtt ():
@@ -499,23 +509,6 @@ async def _request_standard(me, web_request, timeout = None):
499509 setattr (KlippyConnection , '_request_standard' , wrap__request_standard (KlippyConnection ._request_standard ))
500510 logging .debug (f' After: { KlippyConnection ._request_standard } ' )
501511
502- def patch_gcode_paths (self ):
503- from .file_manager .file_manager import FileManager
504-
505- def wrap__handle_metadata_request (original__handle_metadata_request ):
506- async def _handle_metadata_request (me , web_request ):
507- if self .is_goklipper_running () and 'filename' in web_request .args :
508- logging .info ('[Kobra] Replaced gcode paths' )
509- web_request .args ['filename' ] = web_request .args ['filename' ].replace ('/useremain/app/gk/gcodes/' , '' )
510- return await original__handle_metadata_request (me , web_request )
511- return _handle_metadata_request
512-
513- logging .info ('> Patching gcode paths...' )
514-
515- logging .debug (f' Before: { FileManager ._handle_metadata_request } ' )
516- setattr (FileManager , '_handle_metadata_request' , wrap__handle_metadata_request (FileManager ._handle_metadata_request ))
517- logging .debug (f' After: { FileManager ._handle_metadata_request } ' )
518-
519512
520513def load_component (config ):
521514 return Kobra (config )
0 commit comments