From b4dffde3f088f54f53e38fc0033f9b3f5f17e2a5 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Sat, 4 Oct 2025 13:14:15 +0800 Subject: [PATCH] =?UTF-8?q?refactor(api):=20=E7=AE=80=E5=8C=96=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E7=BB=9F=E8=AE=A1=E5=92=8C=E4=BC=9A=E8=AF=9D=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 `get_message_stats_by_chat` 中冗余的 `sent` 和 `received` 统计,只保留 `total` 计数,简化了统计逻辑。 - 优化了获取会话名称的方式,直接从 `chat_manager` 的 `streams` 中查找,统一了群聊和私聊的处理流程,提高了代码的可读性和效率。 - 删除了一个不再需要的测试日志。 --- src/api/message_router.py | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/api/message_router.py b/src/api/message_router.py index c2c28a06d..17f04f33f 100644 --- a/src/api/message_router.py +++ b/src/api/message_router.py @@ -77,15 +77,11 @@ async def get_message_stats_by_chat( if chat_id not in stats: stats[chat_id] = { - "total_stats": {"sent": 0, "received": 0, "total": 0}, + "total_stats": {"total": 0}, "user_stats": {} } stats[chat_id]["total_stats"]["total"] += 1 - if user_id == bot_qq: - stats[chat_id]["total_stats"]["sent"] += 1 - else: - stats[chat_id]["total_stats"]["received"] += 1 if group_by_user: if user_id not in stats[chat_id]["user_stats"]: @@ -97,20 +93,18 @@ async def get_message_stats_by_chat( stats = {chat_id: data["total_stats"] for chat_id, data in stats.items()} if format: + chat_manager = get_chat_manager() formatted_stats = {} for chat_id, data in stats.items(): - # 尝试获取群聊流 - logger.info(f"这是一个测试日志:{chat_id}") - group_stream = chat_api.get_stream_by_group_id(chat_id) - if group_stream and group_stream.group_info: - chat_name = group_stream.group_info.group_name + stream = chat_manager.streams.get(chat_id) + chat_name = "未知会话" + if stream: + if stream.group_info and stream.group_info.group_name: + chat_name = stream.group_info.group_name + elif stream.user_info and stream.user_info.user_nickname: + chat_name = stream.user_info.user_nickname else: - # 只有当它不是一个已知的群聊时,才尝试作为私聊处理 - private_stream = chat_api.get_stream_by_user_id(chat_id) - if private_stream and private_stream.user_info: - chat_name = private_stream.user_info.user_nickname - else: - chat_name = f"未知会话 ({chat_id})" + chat_name = f"未知会话 ({chat_id})" formatted_data = { "chat_name": chat_name,