调整插件流程,server共享 robot项目的对象。
This commit is contained in:
@@ -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} 重载成功"})
|
||||
|
||||
@@ -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无法正常工作")
|
||||
|
||||
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user