mirror of
https://github.com/LC044/WeChatMsg
synced 2025-05-23 16:48:02 +08:00
添加带引用的消息
This commit is contained in:
parent
4d9275d667
commit
a8045930d6
@ -45,7 +45,7 @@ def parser_chatroom_message(messages):
|
||||
message.append(Me())
|
||||
updated_messages.append(tuple(message))
|
||||
continue
|
||||
if message[10] is None: # BytesExtra是空的跳过
|
||||
if message[10] is None and not (message[2] == 49 and message[3] == 57): # BytesExtra是空且不是带引用的消息的跳过
|
||||
message.append(ContactDefault(wxid))
|
||||
updated_messages.append(tuple(message))
|
||||
continue
|
||||
|
@ -8,6 +8,7 @@ from app.components.bubble_message import BubbleMessage, ChatWidget, Notice
|
||||
from app.person import Me
|
||||
from app.util import get_abs_path
|
||||
from app.util.emoji import get_emoji
|
||||
from app.util.compress_content import parser_reply
|
||||
|
||||
|
||||
class ChatInfo(QWidget):
|
||||
@ -157,6 +158,26 @@ class ChatInfo(QWidget):
|
||||
is_send
|
||||
)
|
||||
self.chat_window.add_message_item(bubble_message, 0)
|
||||
elif type_ == 49 and message[3] == 57:
|
||||
# return
|
||||
if self.is_5_min(timestamp):
|
||||
time_message = Notice(self.last_str_time)
|
||||
self.last_str_time = str_time
|
||||
self.chat_window.add_message_item(time_message, 0)
|
||||
content = parser_reply(message[11])
|
||||
refer_msg = content.get('refer')
|
||||
if refer_msg is None:
|
||||
str_content = content.get('title')
|
||||
else:
|
||||
str_content = f"「{refer_msg.get('displayname')}: {refer_msg.get('content')}」\n—————————\n{content.get('title')}"
|
||||
bubble_message = BubbleMessage(
|
||||
str_content,
|
||||
avatar,
|
||||
1,
|
||||
is_send,
|
||||
display_name=display_name
|
||||
)
|
||||
self.chat_window.add_message_item(bubble_message, 0)
|
||||
elif type_ == 10000:
|
||||
str_content = str_content.lstrip('<revokemsg>').rstrip('</revokemsg>')
|
||||
message = Notice(str_content)
|
||||
|
@ -70,6 +70,14 @@ def parser_reply(data: bytes):
|
||||
title = appmsg.find("title").text
|
||||
refermsg_content = appmsg.find("refermsg").find("content").text
|
||||
refermsg_type = int(appmsg.find("refermsg").find("type").text)
|
||||
# 处理引用的消息是个带有引用的消息
|
||||
if refermsg_type == 49:
|
||||
refer_root = ET.XML(refermsg_content)
|
||||
refer_appmsg = refer_root.find('appmsg')
|
||||
refer_msg_type = int(refer_appmsg.find('type').text)
|
||||
if refer_msg_type == 57:
|
||||
refermsg_type = 1
|
||||
refermsg_content = refer_appmsg.find('title').text
|
||||
refermsg_displayname = appmsg.find("refermsg").find("displayname").text
|
||||
return {
|
||||
"type": msg_type,
|
||||
|
Loading…
Reference in New Issue
Block a user