Fix group message, roomid and sender

This commit is contained in:
Changhua 2023-04-30 11:26:09 +08:00
parent c7f7e84a21
commit 858a77028e

View File

@ -80,17 +80,25 @@ void DispatchMsg(DWORD reg)
wxMsg.id = GetStringByAddress(*p + g_WxCalls.recvMsg.msgId); wxMsg.id = GetStringByAddress(*p + g_WxCalls.recvMsg.msgId);
wxMsg.xml = GetStringByAddress(*p + g_WxCalls.recvMsg.msgXml); wxMsg.xml = GetStringByAddress(*p + g_WxCalls.recvMsg.msgXml);
// 群里的系统消息xml 为空;或者包含 <membercount> string roomid = GetStringByAddress(*p + g_WxCalls.recvMsg.roomId);
if ((wxMsg.xml.empty()) || (wxMsg.xml.find("<membercount>") != string::npos)) { if (roomid.find("@chatroom") != string::npos) { // 群 ID 的格式为 xxxxxxxxxxx@chatroom
wxMsg.is_group = true; wxMsg.is_group = true;
wxMsg.roomid = roomid;
if (wxMsg.is_self) {
wxMsg.sender = GetSelfWxid();
} else {
wxMsg.sender = GetStringByAddress(*p + g_WxCalls.recvMsg.wxId); wxMsg.sender = GetStringByAddress(*p + g_WxCalls.recvMsg.wxId);
wxMsg.roomid = GetStringByAddress(*p + g_WxCalls.recvMsg.roomId); }
} else { } else {
wxMsg.is_group = false; wxMsg.is_group = false;
wxMsg.sender = GetStringByAddress(*p + g_WxCalls.recvMsg.roomId); if (wxMsg.is_self) {
wxMsg.sender = GetSelfWxid();
} else {
wxMsg.sender = roomid;
}
} }
wxMsg.content = GetStringByAddress(*p + g_WxCalls.recvMsg.content);
wxMsg.content = GetStringByAddress(*p + g_WxCalls.recvMsg.content);
wxMsg.thumb = GetStringByAddress(*p + g_WxCalls.recvMsg.thumb); wxMsg.thumb = GetStringByAddress(*p + g_WxCalls.recvMsg.thumb);
if (!wxMsg.thumb.empty()) { if (!wxMsg.thumb.empty()) {
wxMsg.thumb = GetHomePath() + "\\WeChat Files\\" + wxMsg.thumb; wxMsg.thumb = GetHomePath() + "\\WeChat Files\\" + wxMsg.thumb;