diff options
author | ikeblaster <ike@thez.info> | 2020-01-19 17:44:35 +0100 |
---|---|---|
committer | ikeblaster <ike@thez.info> | 2020-01-19 17:44:35 +0100 |
commit | 001bbba0dd5b0896dbc5f33e51750edf3b0c55f4 (patch) | |
tree | f487d462225c8013f58756a20a0e9006b2c2808d | |
parent | 3b4590aa1ac467eabdeec188aaa595c38ee66376 (diff) |
Facebook - receipts for sent messages with attachments
-rw-r--r-- | protocols/Facebook/src/server.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/protocols/Facebook/src/server.cpp b/protocols/Facebook/src/server.cpp index 908fd56446..cf6ac2f2d7 100644 --- a/protocols/Facebook/src/server.cpp +++ b/protocols/Facebook/src/server.cpp @@ -488,8 +488,20 @@ void FacebookProto::OnPublishPrivateMessage(const JSONNode &root) } __int64 actorFbId = _wtoi64(metadata["actorFbId"].as_mstring()); - CMStringA szId(metadata["messageId"].as_string().c_str()); + + // messages sent with attachments are returning as deltaNewMessage, not deltaSentMessage + if (m_uid == actorFbId) { + for (auto& it : arOwnMessages) { + if (it->msgId == offlineId) { + ProtoBroadcastAck(pUser->hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, (HANDLE) it->reqId, (LPARAM) szId.c_str()); + arOwnMessages.remove(arOwnMessages.indexOf(&it)); + break; + } + } + } + + // parse message body CMStringA szBody(root["body"].as_string().c_str()); if (szBody.IsEmpty()) szBody = metadata["snippet"].as_string().c_str(); @@ -550,7 +562,7 @@ void FacebookProto::OnPublishPrivateMessage(const JSONNode &root) else szBody += TranslateU("SmileyAdd plugin required to support stickers"); } - // parse stickers + // parse attachments (links, files, ...) for (auto &it : root["attachments"]) { // madness... json inside json CMStringA szJson(it["xmaGraphQL"].as_mstring()); |