debug: 修改了从db取message的字段问题

This commit is contained in:
tcmofashi
2025-03-03 21:31:52 +08:00
parent 5736d97c1f
commit 22b98b9544
2 changed files with 46 additions and 39 deletions

View File

@@ -127,15 +127,15 @@ class MessageStream:
# 从数据库中查询最近的消息 # 从数据库中查询最近的消息
recent_messages = list(db.db.messages.find( recent_messages = list(db.db.messages.find(
{"group_id": self.group_id}, {"group_id": self.group_id},
{ # {
"time": 1, # "time": 1,
"user_id": 1, # "user_id": 1,
"user_nickname": 1, # "user_nickname": 1,
# "user_cardname": 1, # # "user_cardname": 1,
"message_id": 1, # "message_id": 1,
"raw_message": 1, # "raw_message": 1,
"processed_text": 1 # "processed_text": 1
} # }
).sort("time", -1).limit(count)) ).sort("time", -1).limit(count))
if not recent_messages: if not recent_messages:
@@ -145,6 +145,7 @@ class MessageStream:
from .message import Message from .message import Message
messages = [] messages = []
for msg_data in recent_messages: for msg_data in recent_messages:
try:
msg = Message( msg = Message(
time=msg_data["time"], time=msg_data["time"],
user_id=msg_data["user_id"], user_id=msg_data["user_id"],
@@ -156,6 +157,9 @@ class MessageStream:
group_id=self.group_id group_id=self.group_id
) )
messages.append(msg) messages.append(msg)
except KeyError:
print("[WARNING] 数据库中存在无效的消息")
continue
return list(reversed(messages)) # 返回按时间正序的消息 return list(reversed(messages)) # 返回按时间正序的消息

View File

@@ -142,14 +142,14 @@ def get_recent_group_messages(db, group_id: int, limit: int = 12) -> list:
# 从数据库获取最近消息 # 从数据库获取最近消息
recent_messages = list(db.db.messages.find( recent_messages = list(db.db.messages.find(
{"group_id": group_id}, {"group_id": group_id},
{ # {
"time": 1, # "time": 1,
"user_id": 1, # "user_id": 1,
"user_nickname": 1, # "user_nickname": 1,
"message_id": 1, # "message_id": 1,
"raw_message": 1, # "raw_message": 1,
"processed_text": 1 # "processed_text": 1
} # }
).sort("time", -1).limit(limit)) ).sort("time", -1).limit(limit))
if not recent_messages: if not recent_messages:
@@ -159,6 +159,7 @@ def get_recent_group_messages(db, group_id: int, limit: int = 12) -> list:
from .message import Message from .message import Message
message_objects = [] message_objects = []
for msg_data in recent_messages: for msg_data in recent_messages:
try:
msg = Message( msg = Message(
time=msg_data["time"], time=msg_data["time"],
user_id=msg_data["user_id"], user_id=msg_data["user_id"],
@@ -169,6 +170,9 @@ def get_recent_group_messages(db, group_id: int, limit: int = 12) -> list:
group_id=group_id group_id=group_id
) )
message_objects.append(msg) message_objects.append(msg)
except KeyError:
print("[WARNING] 数据库中存在无效的消息")
continue
# 按时间正序排列 # 按时间正序排列
message_objects.reverse() message_objects.reverse()
@@ -181,7 +185,6 @@ def get_recent_group_detailed_plain_text(db, group_id: int, limit: int = 12,comb
"time": 1, # 返回时间字段 "time": 1, # 返回时间字段
"user_id": 1, # 返回用户ID字段 "user_id": 1, # 返回用户ID字段
"user_nickname": 1, # 返回用户昵称字段 "user_nickname": 1, # 返回用户昵称字段
"user_cardname": 1, #返回用户群昵称
"message_id": 1, # 返回消息ID字段 "message_id": 1, # 返回消息ID字段
"detailed_plain_text": 1 # 返回处理后的文本字段 "detailed_plain_text": 1 # 返回处理后的文本字段
} }