mirror of
https://github.com/LC044/WeChatMsg
synced 2024-11-14 22:01:54 +08:00
修复引用refertype的bug,美化引用元素,修复引用显示跨页问题
This commit is contained in:
parent
0e92c58599
commit
83b238ba01
@ -293,13 +293,14 @@ class ChildThread(QThread):
|
|||||||
content = parser_reply(message[11])
|
content = parser_reply(message[11])
|
||||||
refer_msg = content.get('refer')
|
refer_msg = content.get('refer')
|
||||||
if self.output_type == Output.HTML:
|
if self.output_type == Output.HTML:
|
||||||
doc.write(
|
if refer_msg:
|
||||||
f'''{{ type:1, text: '{content.get('title')}',is_send:{is_send},avatar_path:'{avatar}'}},'''
|
doc.write(
|
||||||
)
|
f'''{{ type:49, text: '{content.get('title')}',is_send:{is_send},sub_type:{content.get('type')},refer_text: '{refer_msg.get('displayname')}:{refer_msg.get('content')}',avatar_path:'{avatar}'}},'''
|
||||||
|
)
|
||||||
doc.write(
|
else:
|
||||||
f'''{{ type:{49},sub_type:{content.get('type')}, text: '{refer_msg.get('displayname')}:{refer_msg.get('content')}',is_send:{is_send},avatar_path:''}},'''
|
doc.write(
|
||||||
)
|
f'''{{ type:49, text: '{content.get('title')}',is_send:{is_send},sub_type:{content.get('type')},avatar_path:'{avatar}'}},'''
|
||||||
|
)
|
||||||
elif self.output_type==Output.TXT:
|
elif self.output_type==Output.TXT:
|
||||||
name = '你' if is_send else self.contact.remark
|
name = '你' if is_send else self.contact.remark
|
||||||
doc.write(
|
doc.write(
|
||||||
@ -641,7 +642,7 @@ body{
|
|||||||
}
|
}
|
||||||
.chat-refer{
|
.chat-refer{
|
||||||
max-width: 400px;
|
max-width: 400px;
|
||||||
padding: 3px;
|
padding: 6px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
color: #000;
|
color: #000;
|
||||||
@ -690,6 +691,9 @@ body{
|
|||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
.item-refer{
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
.item.item-right{
|
.item.item-right{
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
@ -908,6 +912,7 @@ html_end = '''
|
|||||||
for (let i = startIndex; i < endIndex && i < chatMessages.length; i++) {
|
for (let i = startIndex; i < endIndex && i < chatMessages.length; i++) {
|
||||||
const message = chatMessages[i];
|
const message = chatMessages[i];
|
||||||
const messageElement = document.createElement('div');
|
const messageElement = document.createElement('div');
|
||||||
|
const messageElementRefer = document.createElement('div');
|
||||||
if (message.type == 1) {
|
if (message.type == 1) {
|
||||||
if (message.is_send == 1) {
|
if (message.is_send == 1) {
|
||||||
messageElement.className = "item item-right";
|
messageElement.className = "item item-right";
|
||||||
@ -946,11 +951,19 @@ html_end = '''
|
|||||||
if (message.sub_type == 57){
|
if (message.sub_type == 57){
|
||||||
if (message.is_send == 1) {
|
if (message.is_send == 1) {
|
||||||
messageElement.className = "item item-right";
|
messageElement.className = "item item-right";
|
||||||
messageElement.innerHTML = `<div class='chat-refer chat-refer-right'>${message.text}</div></div>`
|
messageElement.innerHTML = `<div class='bubble bubble-right'>${message.text}</div><div class='avatar'><img src="${message.avatar_path}" /></div>`
|
||||||
|
if (message.refer_text) {
|
||||||
|
messageElementRefer.className = "item item-right item-refer";
|
||||||
|
messageElementRefer.innerHTML = `<div class='chat-refer chat-refer-right'>${message.refer_text}</div></div>`
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (message.is_send == 0) {
|
else if (message.is_send == 0) {
|
||||||
messageElement.className = "item item-left";
|
messageElement.className = "item item-left";
|
||||||
messageElement.innerHTML = `<div class='chat-refer chat-refer-left'>${message.text}</div></div>`
|
messageElement.innerHTML = `<div class='avatar'><img src="${message.avatar_path}" /></div><div class='bubble bubble-left'>${message.text}</div>`
|
||||||
|
if (message.refer_text) {
|
||||||
|
messageElementRefer.className = "item item-left item-refer";
|
||||||
|
messageElementRefer.innerHTML = `<div class='chat-refer chat-refer-left'>${message.refer_text}</div></div>`
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -965,6 +978,9 @@ html_end = '''
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
chatContainer.appendChild(messageElement);
|
chatContainer.appendChild(messageElement);
|
||||||
|
if (message.type == 49 && message.sub_type == 57 && message.refer_text) {
|
||||||
|
chatContainer.appendChild(messageElementRefer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
document.querySelector("#chat-container").scrollTop = 0;
|
document.querySelector("#chat-container").scrollTop = 0;
|
||||||
updatePaginationInfo();
|
updatePaginationInfo();
|
||||||
|
@ -50,15 +50,15 @@ def parser_reply(data: bytes):
|
|||||||
}
|
}
|
||||||
root = ET.XML(xml_content)
|
root = ET.XML(xml_content)
|
||||||
appmsg = root.find('appmsg')
|
appmsg = root.find('appmsg')
|
||||||
msg_type = appmsg.find('type').text
|
msg_type = int(appmsg.find('type').text)
|
||||||
title = appmsg.find('title').text
|
title = appmsg.find('title').text
|
||||||
refermsg_content = appmsg.find('refermsg').find('content').text
|
refermsg_content = appmsg.find('refermsg').find('content').text
|
||||||
refermsg_type = appmsg.find('refermsg').find('type').text
|
refermsg_type = int(appmsg.find('refermsg').find('type').text)
|
||||||
refermsg_displayname = appmsg.find('refermsg').find('displayname').text
|
refermsg_displayname = appmsg.find('refermsg').find('displayname').text
|
||||||
return {
|
return {
|
||||||
'type': msg_type,
|
'type': msg_type,
|
||||||
'title': title,
|
'title': escape_js_and_html(title),
|
||||||
'refer': {
|
'refer': None if refermsg_type != 1 else {
|
||||||
'type': refermsg_type,
|
'type': refermsg_type,
|
||||||
'content': escape_js_and_html(refermsg_content),
|
'content': escape_js_and_html(refermsg_content),
|
||||||
'displayname': escape_js_and_html(refermsg_displayname),
|
'displayname': escape_js_and_html(refermsg_displayname),
|
||||||
|
Loading…
Reference in New Issue
Block a user