对消息进行格式化
This commit is contained in:
@@ -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}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user