From e4d4ed0719026b724009276463cb6aaf27d8147b Mon Sep 17 00:00:00 2001 From: liuwei Date: Fri, 11 Apr 2025 15:40:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8F=92=E4=BB=B6=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=EF=BC=8Cserver=E5=85=B1=E4=BA=AB=20robot=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E5=AF=B9=E8=B1=A1=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/dashboard/blueprints/plugin_routes.py | 25 +++++++++------------ admin/dashboard/server.py | 2 ++ plugin_common/plugin_manager.py | 4 ++-- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/admin/dashboard/blueprints/plugin_routes.py b/admin/dashboard/blueprints/plugin_routes.py index 05b436d..fcea63a 100644 --- a/admin/dashboard/blueprints/plugin_routes.py +++ b/admin/dashboard/blueprints/plugin_routes.py @@ -21,9 +21,9 @@ def robot_management(): def get_plugins(): """获取所有插件列表""" try: + server = current_app.dashboard_server # 获取插件注册表 - plugin_registry = PluginRegistry() - plugins = plugin_registry.get_all_plugins() + plugins = server.plugin_registry.get_all_plugins() # 转换为前端需要的格式 plugin_list = [] @@ -54,13 +54,13 @@ def get_plugins(): def get_plugin_info(): """获取插件详细信息""" try: + server = current_app.dashboard_server plugin_name = request.args.get('plugin_name') if not plugin_name: return jsonify({"success": False, "message": "缺少插件名称参数"}) # 获取插件管理器 - plugin_manager = PluginManager().get_instance() - display_name, plugin = plugin_manager.find_plugin_by_name(plugin_name) + display_name, plugin = server.plugin_manager.find_plugin_by_name(plugin_name) if not plugin: return jsonify({"success": False, "message": f"未找到插件: {plugin_name}"}) @@ -94,16 +94,15 @@ def get_plugin_info(): def enable_plugin(): """启用插件""" try: + server = current_app.dashboard_server data = request.get_json() plugin_name = data.get('plugin_name') if not plugin_name: return jsonify({"success": False, "message": "缺少插件名称参数"}) # 获取插件管理器 - plugin_manager = PluginManager().get_instance() - # 启用插件 - if plugin_manager.start_plugin(plugin_name): + if server.plugin_manager.start_plugin(plugin_name): return jsonify({"success": True, "message": f"插件 {plugin_name} 启用成功"}) else: return jsonify({"success": False, "message": f"插件 {plugin_name} 启用失败"}) @@ -116,16 +115,14 @@ def enable_plugin(): def disable_plugin(): """禁用插件""" try: + server = current_app.dashboard_server data = request.get_json() plugin_name = data.get('plugin_name') if not plugin_name: return jsonify({"success": False, "message": "缺少插件名称参数"}) - - # 获取插件管理器 - plugin_manager = PluginManager().get_instance() # 禁用插件 - if plugin_manager.stop_plugin(plugin_name): + if server.plugin_manager.stop_plugin(plugin_name): return jsonify({"success": True, "message": f"插件 {plugin_name} 禁用成功"}) else: return jsonify({"success": False, "message": f"插件 {plugin_name} 禁用失败"}) @@ -138,16 +135,14 @@ def disable_plugin(): def reload_plugin(): """重载插件""" try: + server = current_app.dashboard_server data = request.get_json() plugin_name = data.get('plugin_name') if not plugin_name: return jsonify({"success": False, "message": "缺少插件名称参数"}) - - # 获取插件管理器 - plugin_manager = PluginManager().get_instance() # 重载插件 - reloaded_plugin = plugin_manager.reload_plugin(plugin_name) + reloaded_plugin = server.plugin_manager.reload_plugin(plugin_name) if reloaded_plugin: return jsonify({"success": True, "message": f"插件 {plugin_name} 重载成功"}) diff --git a/admin/dashboard/server.py b/admin/dashboard/server.py index 9a9f17a..ebd9dbb 100644 --- a/admin/dashboard/server.py +++ b/admin/dashboard/server.py @@ -41,6 +41,8 @@ class DashboardServer: self.message_storage = MessageStorageDB(self.db_manager) # 获取联系人管理器实例 self.contact_manager = robot_instance.contact_manager + self.plugin_manager = robot_instance.plugin_manager + self.plugin_registry = robot_instance.plugin_registry self.logger.info("使用Robot实例的对象进行初始化") else: self.logger.error("未提供Robot实例,Dashboard无法正常工作") diff --git a/plugin_common/plugin_manager.py b/plugin_common/plugin_manager.py index f907dfd..ae8b2a7 100644 --- a/plugin_common/plugin_manager.py +++ b/plugin_common/plugin_manager.py @@ -275,7 +275,7 @@ class PluginManager: # 添加模块名到显示名的映射 self.module_to_display[module_name] = display_name - self.LOG.info(f"PluginManager:添加模块映射 {module_name} -> {display_name}") + # self.LOG.info(f"PluginManager:添加模块映射 {module_name} -> {display_name}") # 发布插件加载事件 EventSystem().publish(EventType.PLUGIN_LOADED, {"plugin": plugin}) @@ -315,7 +315,7 @@ class PluginManager: # 添加模块名到显示名的映射 self.module_to_display[module_name] = display_name - self.LOG.info(f"PluginManager:添加模块映射 {module_name} -> {display_name}") + # self.LOG.info(f"PluginManager:添加模块映射 {module_name} -> {display_name}") # 发布插件加载事件 EventSystem().publish(EventType.PLUGIN_LOADED, {"plugin": plugin})