refactor(api): 简化消息统计和会话名称获取逻辑
- 移除 `get_message_stats_by_chat` 中冗余的 `sent` 和 `received` 统计,只保留 `total` 计数,简化了统计逻辑。 - 优化了获取会话名称的方式,直接从 `chat_manager` 的 `streams` 中查找,统一了群聊和私聊的处理流程,提高了代码的可读性和效率。 - 删除了一个不再需要的测试日志。
This commit is contained in:
@@ -77,15 +77,11 @@ async def get_message_stats_by_chat(
|
|||||||
|
|
||||||
if chat_id not in stats:
|
if chat_id not in stats:
|
||||||
stats[chat_id] = {
|
stats[chat_id] = {
|
||||||
"total_stats": {"sent": 0, "received": 0, "total": 0},
|
"total_stats": {"total": 0},
|
||||||
"user_stats": {}
|
"user_stats": {}
|
||||||
}
|
}
|
||||||
|
|
||||||
stats[chat_id]["total_stats"]["total"] += 1
|
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 group_by_user:
|
||||||
if user_id not in stats[chat_id]["user_stats"]:
|
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()}
|
stats = {chat_id: data["total_stats"] for chat_id, data in stats.items()}
|
||||||
|
|
||||||
if format:
|
if format:
|
||||||
|
chat_manager = get_chat_manager()
|
||||||
formatted_stats = {}
|
formatted_stats = {}
|
||||||
for chat_id, data in stats.items():
|
for chat_id, data in stats.items():
|
||||||
# 尝试获取群聊流
|
stream = chat_manager.streams.get(chat_id)
|
||||||
logger.info(f"这是一个测试日志:{chat_id}")
|
chat_name = "未知会话"
|
||||||
group_stream = chat_api.get_stream_by_group_id(chat_id)
|
if stream:
|
||||||
if group_stream and group_stream.group_info:
|
if stream.group_info and stream.group_info.group_name:
|
||||||
chat_name = group_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:
|
else:
|
||||||
# 只有当它不是一个已知的群聊时,才尝试作为私聊处理
|
chat_name = f"未知会话 ({chat_id})"
|
||||||
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})"
|
|
||||||
|
|
||||||
formatted_data = {
|
formatted_data = {
|
||||||
"chat_name": chat_name,
|
"chat_name": chat_name,
|
||||||
|
|||||||
Reference in New Issue
Block a user