diff --git a/utils/message_formatter.py b/utils/message_formatter.py
index c2e9957..1c4d8ec 100644
--- a/utils/message_formatter.py
+++ b/utils/message_formatter.py
@@ -1,5 +1,6 @@
import xml.etree.ElementTree as ET
import html
+import re
def format_quote_message(xml_content):
@@ -13,26 +14,47 @@ def format_quote_message(xml_content):
格式化后的消息文本
"""
try:
- # 解析XML
- root = ET.fromstring(xml_content)
-
- # 获取主消息内容
- title_elem = root.find('.//title')
- main_content = title_elem.text if title_elem is not None else ""
-
- # 获取引用消息信息
- refer_msg = root.find('.//refermsg')
- if refer_msg is not None:
- display_name = refer_msg.find('displayname').text if refer_msg.find('displayname') is not None else "未知用户"
- quoted_content = refer_msg.find('content').text if refer_msg.find('content') is not None else ""
-
- # 解码HTML实体
+
+ xml_content = xml_content.replace('<', '<').replace('>', '>')
+ print(xml_content)
+ # 使用正则表达式直接提取关键信息,避免XML解析问题
+ title_match = re.search(r'
(.*?)', xml_content)
+ main_content = title_match.group(1) if title_match else "[无标题]"
+
+ # 提取引用消息的发送者和内容
+ display_name_match = re.search(r'(.*?)', xml_content)
+ display_name = display_name_match.group(1) if display_name_match else "未知用户"
+
+ quoted_content_match = re.search(r'.*?(.*?)', xml_content, re.DOTALL)
+ quoted_content = quoted_content_match.group(1) if quoted_content_match else ""
+
+ # 解码HTML实体
+ try:
quoted_content = html.unescape(quoted_content)
-
- # 构建格式化的引用消息
+ except:
+ pass # 如果解码失败,使用原始内容
+
+ # 构建格式化的引用消息
+ if display_name and quoted_content:
formatted_message = f"┌─────────────────────────────────\n│ 引用 {display_name}:{quoted_content}\n└─────────────────────────────────\n{main_content}"
return formatted_message
-
+
return main_content
except Exception as e:
- return f"解析引用消息失败: {str(e)}"
+ # 如果解析失败,尝试提取title标签内容
+ try:
+ match = re.search(r'(.*?)', xml_content)
+ if match:
+ return match.group(1)
+ except:
+ pass
+
+ return f"[引用消息]" # 返回一个简单的标识,而不是错误信息
+
+
+if __name__ == '__main__':
+ strs ="""
+ 那也没事,都是富二代,都是送出国镀个金回家继承家业的 57 0 0 0 0 1 2568355911763278189 45317011307@chatroom wxid_twrbhdxddlud12 水牛🐃 都是富二代。 <msgsource> <sec_msg_node> <alnode> <fr>1</fr> </alnode> </sec_msg_node> <pua>1</pua> <silence>1</silence> <membercount>125</membercount> <signature>N0_V1_DaX/Y3s2|v1_PvH3m56P</signature> <tmp_node> <publisher-id></publisher-id> </tmp_node> </msgsource> 1743491847 maoyijie 0 1
+ """
+ sss = format_quote_message(strs)
+ print(sss)