diff --git a/ks_includes/printer.py b/ks_includes/printer.py index 280872e8..143a11fc 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -153,7 +153,14 @@ class Printer: return [] def get_config_section(self, section): - return self.config[section] if section in self.config else False + return next( + ( + self.config[key] + for key in self.config.keys() + if key.find(section) > -1 + ), + False, + ) def get_fans(self): fans = [] diff --git a/panels/gcode_macros.py b/panels/gcode_macros.py index d497ddb7..f8f39bf9 100644 --- a/panels/gcode_macros.py +++ b/panels/gcode_macros.py @@ -83,7 +83,12 @@ class MacroPanel(ScreenPanel): "params": {}, } pattern = r'params\.(?P..*)\|default\((?P..*)\).*' - gcode = self._printer.get_config_section(f"gcode_macro {macro}")["gcode"].split("\n") + gcode = self._printer.get_config_section(macro) + if gcode and "gcode" in gcode: + gcode = gcode["gcode"].split("\n") + else: + logging.debug(f"Couldn't load {macro}\n{gcode}") + return i = 0 for line in gcode: if line.startswith("{") and "params." in line: