调整插件流程,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(): def get_plugins():
"""获取所有插件列表""" """获取所有插件列表"""
try: try:
server = current_app.dashboard_server
# 获取插件注册表 # 获取插件注册表
plugin_registry = PluginRegistry() plugins = server.plugin_registry.get_all_plugins()
plugins = plugin_registry.get_all_plugins()
# 转换为前端需要的格式 # 转换为前端需要的格式
plugin_list = [] plugin_list = []
@@ -54,13 +54,13 @@ def get_plugins():
def get_plugin_info(): def get_plugin_info():
"""获取插件详细信息""" """获取插件详细信息"""
try: try:
server = current_app.dashboard_server
plugin_name = request.args.get('plugin_name') plugin_name = request.args.get('plugin_name')
if not plugin_name: if not plugin_name:
return jsonify({"success": False, "message": "缺少插件名称参数"}) return jsonify({"success": False, "message": "缺少插件名称参数"})
# 获取插件管理器 # 获取插件管理器
plugin_manager = PluginManager().get_instance() display_name, plugin = server.plugin_manager.find_plugin_by_name(plugin_name)
display_name, plugin = plugin_manager.find_plugin_by_name(plugin_name)
if not plugin: if not plugin:
return jsonify({"success": False, "message": f"未找到插件: {plugin_name}"}) return jsonify({"success": False, "message": f"未找到插件: {plugin_name}"})
@@ -94,16 +94,15 @@ def get_plugin_info():
def enable_plugin(): def enable_plugin():
"""启用插件""" """启用插件"""
try: try:
server = current_app.dashboard_server
data = request.get_json() data = request.get_json()
plugin_name = data.get('plugin_name') plugin_name = data.get('plugin_name')
if not plugin_name: if not plugin_name:
return jsonify({"success": False, "message": "缺少插件名称参数"}) 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} 启用成功"}) return jsonify({"success": True, "message": f"插件 {plugin_name} 启用成功"})
else: else:
return jsonify({"success": False, "message": f"插件 {plugin_name} 启用失败"}) return jsonify({"success": False, "message": f"插件 {plugin_name} 启用失败"})
@@ -116,16 +115,14 @@ def enable_plugin():
def disable_plugin(): def disable_plugin():
"""禁用插件""" """禁用插件"""
try: try:
server = current_app.dashboard_server
data = request.get_json() data = request.get_json()
plugin_name = data.get('plugin_name') plugin_name = data.get('plugin_name')
if not plugin_name: if not plugin_name:
return jsonify({"success": False, "message": "缺少插件名称参数"}) 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} 禁用成功"}) return jsonify({"success": True, "message": f"插件 {plugin_name} 禁用成功"})
else: else:
return jsonify({"success": False, "message": f"插件 {plugin_name} 禁用失败"}) return jsonify({"success": False, "message": f"插件 {plugin_name} 禁用失败"})
@@ -138,16 +135,14 @@ def disable_plugin():
def reload_plugin(): def reload_plugin():
"""重载插件""" """重载插件"""
try: try:
server = current_app.dashboard_server
data = request.get_json() data = request.get_json()
plugin_name = data.get('plugin_name') plugin_name = data.get('plugin_name')
if not plugin_name: if not plugin_name:
return jsonify({"success": False, "message": "缺少插件名称参数"}) 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: if reloaded_plugin:
return jsonify({"success": True, "message": f"插件 {plugin_name} 重载成功"}) return jsonify({"success": True, "message": f"插件 {plugin_name} 重载成功"})

View File

@@ -41,6 +41,8 @@ class DashboardServer:
self.message_storage = MessageStorageDB(self.db_manager) self.message_storage = MessageStorageDB(self.db_manager)
# 获取联系人管理器实例 # 获取联系人管理器实例
self.contact_manager = robot_instance.contact_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实例的对象进行初始化") self.logger.info("使用Robot实例的对象进行初始化")
else: else:
self.logger.error("未提供Robot实例Dashboard无法正常工作") self.logger.error("未提供Robot实例Dashboard无法正常工作")

View File

@@ -275,7 +275,7 @@ class PluginManager:
# 添加模块名到显示名的映射 # 添加模块名到显示名的映射
self.module_to_display[module_name] = display_name 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}) EventSystem().publish(EventType.PLUGIN_LOADED, {"plugin": plugin})
@@ -315,7 +315,7 @@ class PluginManager:
# 添加模块名到显示名的映射 # 添加模块名到显示名的映射
self.module_to_display[module_name] = display_name 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}) EventSystem().publish(EventType.PLUGIN_LOADED, {"plugin": plugin})