调整插件流程,server共享 robot项目的对象。

This commit is contained in:
liuwei
2025-04-11 15:40:24 +08:00
parent 741929f077
commit e4d4ed0719
3 changed files with 14 additions and 17 deletions

View File

@@ -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} 重载成功"})

View File

@@ -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无法正常工作")

View File

@@ -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})