From 22b98b95448e5da3d53153206173812e62a36416 Mon Sep 17 00:00:00 2001 From: tcmofashi Date: Mon, 3 Mar 2025 21:31:52 +0800 Subject: [PATCH] =?UTF-8?q?debug:=20=E4=BF=AE=E6=94=B9=E4=BA=86=E4=BB=8Edb?= =?UTF-8?q?=E5=8F=96message=E7=9A=84=E5=AD=97=E6=AE=B5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/message_stream.py | 44 ++++++++++++++++-------------- src/plugins/chat/utils.py | 41 +++++++++++++++------------- 2 files changed, 46 insertions(+), 39 deletions(-) diff --git a/src/plugins/chat/message_stream.py b/src/plugins/chat/message_stream.py index 2c34f8594..07809caa7 100644 --- a/src/plugins/chat/message_stream.py +++ b/src/plugins/chat/message_stream.py @@ -127,15 +127,15 @@ class MessageStream: # 从数据库中查询最近的消息 recent_messages = list(db.db.messages.find( {"group_id": self.group_id}, - { - "time": 1, - "user_id": 1, - "user_nickname": 1, - # "user_cardname": 1, - "message_id": 1, - "raw_message": 1, - "processed_text": 1 - } + # { + # "time": 1, + # "user_id": 1, + # "user_nickname": 1, + # # "user_cardname": 1, + # "message_id": 1, + # "raw_message": 1, + # "processed_text": 1 + # } ).sort("time", -1).limit(count)) if not recent_messages: @@ -145,17 +145,21 @@ class MessageStream: from .message import Message messages = [] for msg_data in recent_messages: - msg = Message( - time=msg_data["time"], - user_id=msg_data["user_id"], - user_nickname=msg_data.get("user_nickname", ""), - user_cardname=msg_data.get("user_cardname", ""), - message_id=msg_data["message_id"], - raw_message=msg_data["raw_message"], - processed_plain_text=msg_data.get("processed_text", ""), - group_id=self.group_id - ) - messages.append(msg) + try: + msg = Message( + time=msg_data["time"], + user_id=msg_data["user_id"], + user_nickname=msg_data.get("user_nickname", ""), + user_cardname=msg_data.get("user_cardname", ""), + message_id=msg_data["message_id"], + raw_message=msg_data["raw_message"], + processed_plain_text=msg_data.get("processed_text", ""), + group_id=self.group_id + ) + messages.append(msg) + except KeyError: + print("[WARNING] 数据库中存在无效的消息") + continue return list(reversed(messages)) # 返回按时间正序的消息 diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 7b0b82615..a65973ef2 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -142,14 +142,14 @@ def get_recent_group_messages(db, group_id: int, limit: int = 12) -> list: # 从数据库获取最近消息 recent_messages = list(db.db.messages.find( {"group_id": group_id}, - { - "time": 1, - "user_id": 1, - "user_nickname": 1, - "message_id": 1, - "raw_message": 1, - "processed_text": 1 - } + # { + # "time": 1, + # "user_id": 1, + # "user_nickname": 1, + # "message_id": 1, + # "raw_message": 1, + # "processed_text": 1 + # } ).sort("time", -1).limit(limit)) if not recent_messages: @@ -159,16 +159,20 @@ def get_recent_group_messages(db, group_id: int, limit: int = 12) -> list: from .message import Message message_objects = [] for msg_data in recent_messages: - msg = Message( - time=msg_data["time"], - user_id=msg_data["user_id"], - user_nickname=msg_data.get("user_nickname", ""), - message_id=msg_data["message_id"], - raw_message=msg_data["raw_message"], - processed_plain_text=msg_data.get("processed_text", ""), - group_id=group_id - ) - message_objects.append(msg) + try: + msg = Message( + time=msg_data["time"], + user_id=msg_data["user_id"], + user_nickname=msg_data.get("user_nickname", ""), + message_id=msg_data["message_id"], + raw_message=msg_data["raw_message"], + processed_plain_text=msg_data.get("processed_text", ""), + group_id=group_id + ) + message_objects.append(msg) + except KeyError: + print("[WARNING] 数据库中存在无效的消息") + continue # 按时间正序排列 message_objects.reverse() @@ -181,7 +185,6 @@ def get_recent_group_detailed_plain_text(db, group_id: int, limit: int = 12,comb "time": 1, # 返回时间字段 "user_id": 1, # 返回用户ID字段 "user_nickname": 1, # 返回用户昵称字段 - "user_cardname": 1, #返回用户群昵称 "message_id": 1, # 返回消息ID字段 "detailed_plain_text": 1 # 返回处理后的文本字段 }