This commit is contained in:
zzzzz
2025-04-10 21:32:31 +08:00
parent dbc60dbfee
commit f3d4d7f7f2

View File

@@ -1,3 +1,4 @@
import re
from typing import Union from typing import Union
from ...common.database import db from ...common.database import db
@@ -7,19 +8,34 @@ from src.common.logger import get_module_logger
logger = get_module_logger("message_storage") logger = get_module_logger("message_storage")
class MessageStorage: class MessageStorage:
async def store_message(self, message: Union[MessageSending, MessageRecv], chat_stream: ChatStream) -> None: async def store_message(self, message: Union[MessageSending, MessageRecv], chat_stream: ChatStream) -> None:
"""存储消息到数据库""" """存储消息到数据库"""
try: try:
# 莫越权 救世啊
pattern = r"<MainRule>.*?</MainRule>|<schedule>.*?</schedule>|<UserMessage>.*?</UserMessage>"
processed_plain_text = message.processed_plain_text
if processed_plain_text:
filtered_processed_plain_text = re.sub(pattern, "", processed_plain_text, flags=re.DOTALL)
else:
filtered_processed_plain_text = ""
detailed_plain_text = message.detailed_plain_text
if detailed_plain_text:
filtered_detailed_plain_text = re.sub(pattern, "", detailed_plain_text, flags=re.DOTALL)
else:
filtered_detailed_plain_text = ""
message_data = { message_data = {
"message_id": message.message_info.message_id, "message_id": message.message_info.message_id,
"time": message.message_info.time, "time": message.message_info.time,
"chat_id": chat_stream.stream_id, "chat_id": chat_stream.stream_id,
"chat_info": chat_stream.to_dict(), "chat_info": chat_stream.to_dict(),
"user_info": message.message_info.user_info.to_dict(), "user_info": message.message_info.user_info.to_dict(),
"processed_plain_text": message.processed_plain_text, # 使用过滤后的文本
"detailed_plain_text": message.detailed_plain_text, "processed_plain_text": filtered_processed_plain_text,
"detailed_plain_text": filtered_detailed_plain_text,
"memorized_times": message.memorized_times, "memorized_times": message.memorized_times,
} }
db.messages.insert_one(message_data) db.messages.insert_one(message_data)