调整xml内容

This commit is contained in:
liuwei
2025-05-16 18:20:04 +08:00
parent c6f9335b12
commit d890ab2b37
2 changed files with 25 additions and 15 deletions

View File

@@ -8,12 +8,14 @@ from datetime import datetime
robot_bp = Blueprint('robot', __name__, url_prefix='/robot') robot_bp = Blueprint('robot', __name__, url_prefix='/robot')
LOG = logger LOG = logger
# 机器人管理页面 # 机器人管理页面
@robot_bp.route('/') @robot_bp.route('/')
@login_required @login_required
def robot_management(): def robot_management():
return render_template('robot_management.html') return render_template('robot_management.html')
# API路由 # API路由
@robot_bp.route('/api/groups') @robot_bp.route('/api/groups')
@login_required @login_required
@@ -45,7 +47,7 @@ def api_robot_groups():
try: try:
robot_status = GroupBotManager.get_group_permission(group_id, Feature.ROBOT) robot_status = GroupBotManager.get_group_permission(group_id, Feature.ROBOT)
except: except:
robot_status = PermissionStatus.UNKNOWN robot_status = PermissionStatus.DISABLED
group_data.append({ group_data.append({
"group_id": group_id, "group_id": group_id,
@@ -66,6 +68,7 @@ def api_robot_groups():
LOG.error(f"获取群组列表失败: {e}") LOG.error(f"获取群组列表失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500 return jsonify({"success": False, "error": str(e)}), 500
@robot_bp.route('/api/group/<group_id>/permissions') @robot_bp.route('/api/group/<group_id>/permissions')
@login_required @login_required
def api_robot_group_permissions(group_id): def api_robot_group_permissions(group_id):
@@ -86,6 +89,7 @@ def api_robot_group_permissions(group_id):
LOG.error(f"获取群组权限失败: {e}") LOG.error(f"获取群组权限失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500 return jsonify({"success": False, "error": str(e)}), 500
@robot_bp.route('/api/group/<group_id>/permissions', methods=['POST']) @robot_bp.route('/api/group/<group_id>/permissions', methods=['POST'])
@login_required @login_required
def api_update_robot_permissions(group_id): def api_update_robot_permissions(group_id):
@@ -115,6 +119,7 @@ def api_update_robot_permissions(group_id):
LOG.error(f"更新群组权限失败: {e}") LOG.error(f"更新群组权限失败: {e}")
return jsonify({"success": False, "error": str(e)}), 400 return jsonify({"success": False, "error": str(e)}), 400
@robot_bp.route('/api/batch_operation', methods=['POST']) @robot_bp.route('/api/batch_operation', methods=['POST'])
@login_required @login_required
def api_robot_batch_operation(): def api_robot_batch_operation():
@@ -138,6 +143,7 @@ def api_robot_batch_operation():
LOG.error(f"批量操作失败: {e}") LOG.error(f"批量操作失败: {e}")
return jsonify({"success": False, "error": str(e)}), 400 return jsonify({"success": False, "error": str(e)}), 400
@robot_bp.route('/api/add_group', methods=['POST']) @robot_bp.route('/api/add_group', methods=['POST'])
@login_required @login_required
def api_add_group(): def api_add_group():
@@ -150,10 +156,10 @@ def api_add_group():
return jsonify({"success": False, "error": "群组ID不能为空"}), 400 return jsonify({"success": False, "error": "群组ID不能为空"}), 400
group_id = group_id.strip() group_id = group_id.strip()
#如果group_id 不是@chatroom 结尾,这提示错误 # 如果group_id 不是@chatroom 结尾,这提示错误
if not group_id.endswith("@chatroom"): if not group_id.endswith("@chatroom"):
return jsonify({"success": False, "error": "群组ID必须以 @chatroom 结尾"}), 400 return jsonify({"success": False, "error": "群组ID必须以 @chatroom 结尾"}), 400
# 检查群组是否已存在 # 检查群组是否已存在
if group_id in GroupBotManager.local_cache["group_list"]: if group_id in GroupBotManager.local_cache["group_list"]:
return jsonify({"success": False, "error": "该群组已存在"}), 400 return jsonify({"success": False, "error": "该群组已存在"}), 400
@@ -182,6 +188,7 @@ def api_add_group():
LOG.error(f"添加群组失败: {e}") LOG.error(f"添加群组失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500 return jsonify({"success": False, "error": str(e)}), 500
@robot_bp.route('/api/group/<group_id>/message_trend') @robot_bp.route('/api/group/<group_id>/message_trend')
@login_required @login_required
def api_group_message_trend(group_id): def api_group_message_trend(group_id):
@@ -214,6 +221,7 @@ def api_group_message_trend(group_id):
LOG.error(f"获取群组消息趋势数据出错: {e}") LOG.error(f"获取群组消息趋势数据出错: {e}")
return jsonify({'success': False, 'error': str(e)}), 500 return jsonify({'success': False, 'error': str(e)}), 500
# 添加缺失的群组状态更新接口 # 添加缺失的群组状态更新接口
@robot_bp.route('/api/group/<group_id>/status', methods=['POST']) @robot_bp.route('/api/group/<group_id>/status', methods=['POST'])
@login_required @login_required
@@ -222,23 +230,23 @@ def api_update_group_status(group_id):
server = current_app.dashboard_server server = current_app.dashboard_server
data = request.json data = request.json
status = data.get('status') status = data.get('status')
if status == 'disabled': if status == 'disabled':
# 禁用该群组的所有功能 # 禁用该群组的所有功能
LOG.info(f"正在禁用群组 {group_id} 的所有功能") LOG.info(f"正在禁用群组 {group_id} 的所有功能")
# 获取所有功能并禁用 # 获取所有功能并禁用
for feature in Feature: for feature in Feature:
GroupBotManager.set_group_permission(group_id, feature, PermissionStatus.DISABLED) GroupBotManager.set_group_permission(group_id, feature, PermissionStatus.DISABLED)
# 特殊处理ROBOT功能从群组列表中移除 # 特殊处理ROBOT功能从群组列表中移除
if group_id in GroupBotManager.local_cache["group_list"]: if group_id in GroupBotManager.local_cache["group_list"]:
GroupBotManager.local_cache["group_list"].remove(group_id) GroupBotManager.local_cache["group_list"].remove(group_id)
# 从Redis中移除 # 从Redis中移除
r = server.db_manager.get_redis_connection() r = server.db_manager.get_redis_connection()
r.srem("group:list", group_id) r.srem("group:list", group_id)
return jsonify({ return jsonify({
"success": True, "success": True,
"message": f"群组 {group_id} 的所有功能已禁用" "message": f"群组 {group_id} 的所有功能已禁用"
@@ -246,18 +254,18 @@ def api_update_group_status(group_id):
elif status == 'enabled': elif status == 'enabled':
# 启用该群组的基本功能 # 启用该群组的基本功能
LOG.info(f"正在启用群组 {group_id} 的基本功能") LOG.info(f"正在启用群组 {group_id} 的基本功能")
# 添加到群组列表 # 添加到群组列表
if group_id not in GroupBotManager.local_cache["group_list"]: if group_id not in GroupBotManager.local_cache["group_list"]:
GroupBotManager.local_cache["group_list"].add(group_id) GroupBotManager.local_cache["group_list"].add(group_id)
# 添加到Redis # 添加到Redis
r = server.db_manager.get_redis_connection() r = server.db_manager.get_redis_connection()
r.sadd("group:list", group_id) r.sadd("group:list", group_id)
# 启用ROBOT基本功能 # 启用ROBOT基本功能
GroupBotManager.set_group_permission(group_id, Feature.ROBOT, PermissionStatus.ENABLED) GroupBotManager.set_group_permission(group_id, Feature.ROBOT, PermissionStatus.ENABLED)
return jsonify({ return jsonify({
"success": True, "success": True,
"message": f"群组 {group_id} 的基本功能已启用" "message": f"群组 {group_id} 的基本功能已启用"
@@ -267,7 +275,7 @@ def api_update_group_status(group_id):
"success": False, "success": False,
"error": "不支持的状态值,只接受 'enabled''disabled'" "error": "不支持的状态值,只接受 'enabled''disabled'"
}), 400 }), 400
except Exception as e: except Exception as e:
LOG.error(f"更新群组状态失败: {e}") LOG.error(f"更新群组状态失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500 return jsonify({"success": False, "error": str(e)}), 500

View File

@@ -16,6 +16,7 @@ from utils.robot_cmd.robot_command import Feature, PermissionStatus, GroupBotMan
import mysql.connector.pooling import mysql.connector.pooling
from wechat_ipad import WechatAPIClient from wechat_ipad import WechatAPIClient
from wechat_ipad.models.message import WxMessage
class PointTradePlugin(MessagePluginInterface): class PointTradePlugin(MessagePluginInterface):
@@ -161,8 +162,9 @@ class PointTradePlugin(MessagePluginInterface):
command = content.split(" ") command = content.split(" ")
sender = message.get("sender") sender = message.get("sender")
roomid = message.get("roomid", "") roomid = message.get("roomid", "")
xml = message.get("xml", "")
msg: WxMessage = message.get("full_wx_msg")
xml = msg.msg_source
# 检查命令格式 # 检查命令格式
if len(command) < 3: if len(command) < 3:
client_msg_id, create_time, new_msg_id = await self.bot.send_at_message((roomid if roomid else sender), client_msg_id, create_time, new_msg_id = await self.bot.send_at_message((roomid if roomid else sender),