From d711a2c24addcbc4a65d3013cccb15e0cb54e386 Mon Sep 17 00:00:00 2001 From: liuwei Date: Thu, 17 Apr 2025 15:02:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=99=E4=B8=AA=E4=BF=AE=E6=94=B9=E7=9A=84?= =?UTF-8?q?=E4=B8=BB=E8=A6=81=E4=BC=98=E7=82=B9=E6=98=AF=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 在插件初始化之前就进行检查,避免不必要的资源消耗 2. 保持了配置文件的控制作用 3. 通过日志清晰地显示插件未加载的原因 需要注意的是,这个修改假设所有插件的配置文件都遵循相同的结构(即使用插件类名作为配置节点)。如果有些插件使用不同的配置结构,可能需要调整检查逻辑。 --- plugin_common/plugin_manager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugin_common/plugin_manager.py b/plugin_common/plugin_manager.py index 26786c4..e04caaa 100644 --- a/plugin_common/plugin_manager.py +++ b/plugin_common/plugin_manager.py @@ -300,11 +300,11 @@ class PluginManager: self.LOG.error(f"PluginManager:插件模块 {module_name} 加载配置失败") return None - # 添加检查enable状态的代码 - plugin_config = plugin._config.get(plugin.__class__.__name__, {}) - if not plugin_config.get("enable", True): # 默认为True,如果没有配置 - self.LOG.info(f"PluginManager:插件 {module_name} 已禁用,跳过加载") - return None + # 修改检查enable状态的代码:遍历所有配置节点 + for section in plugin._config.values(): + if isinstance(section, dict) and not section.get("enable", True): + self.LOG.info(f"PluginManager:插件 {module_name} 已禁用,跳过加载") + return None # 初始化插件 if not plugin.initialize(self.system_context):