fix #721
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user