对消息进行格式化

This commit is contained in:
liuwei
2025-04-01 15:28:59 +08:00
parent 5db76f1a46
commit 59898621f5
3 changed files with 97 additions and 39 deletions

View File

@@ -7,6 +7,8 @@ from wcferry import WxMsg
from db.connection import DBConnectionManager
from db.message_storage import MessageStorageDB
# 导入消息格式化工具
from utils.message_formatter import format_quote_message
# 配置日志
logging.basicConfig(
@@ -209,18 +211,22 @@ class MessageStorage:
hours_ago = int(
(current_time - datetime.strptime(last_summary_time, '%Y-%m-%d %H:%M:%S')).total_seconds() / 3600) + 1
messages = self.message_db.get_recent_messages(group_id, hours_ago=hours_ago)
# 构建最终的结果字符串
result = []
for msg in messages:
timestamp, sender, content, message_type = msg['timestamp'], msg['sender'], msg['content'], msg[
'message_type']
timestamp, sender, content, message_type = msg['timestamp'], msg['sender'], msg['content'], msg['message_type']
try:
if message_type == 49: # 注意这里是整数类型
# 解析 XML 字符串
root = ET.fromstring(content)
# 提取 title 内容
content = root.find('.//title').text
if message_type == 49: # 应用消息类型
# 检查是否为引用消息
if '<refermsg>' in content:
# 使用格式化工具处理引用消息
content = format_quote_message(content)
else:
# 其他类型的应用消息,解析 XML 提取标题
root = ET.fromstring(content)
title_elem = root.find('.//title')
if title_elem is not None:
content = title_elem.text
except Exception as e:
logger.error(f"解析消息类型49出错: {e}")