diff options
author | Robert Pösel <robyer@seznam.cz> | 2015-12-22 19:00:27 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2015-12-22 19:00:27 +0000 |
commit | ac8bed8f05473bf773b9729d5acef4b49dde3682 (patch) | |
tree | e4acef721054ef0fa89676061147e2bba9b6baf1 /protocols/Steam/src/steam_history.cpp | |
parent | f5e9122078e308f4b9dfa70b4f160056fae95c19 (diff) |
Steam: Various fixes to loading offline messages
git-svn-id: http://svn.miranda-ng.org/main/trunk@15933 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Steam/src/steam_history.cpp')
-rw-r--r-- | protocols/Steam/src/steam_history.cpp | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/protocols/Steam/src/steam_history.cpp b/protocols/Steam/src/steam_history.cpp index d2fe8b4d50..75e40a5674 100644 --- a/protocols/Steam/src/steam_history.cpp +++ b/protocols/Steam/src/steam_history.cpp @@ -2,6 +2,10 @@ void CSteamProto::OnGotConversations(const HttpResponse *response) { + // Don't load any messages when we don't have lastMessageTS, as it may cause duplicates + if (m_lastMessageTS <= 0) + return; + if (!ResponseHttpOk(response)) return; @@ -10,18 +14,6 @@ void CSteamProto::OnGotConversations(const HttpResponse *response) return; JSONNode *node = json_get(root, "response"); - - if (m_lastMessageTS <= 0) - { - // Remember and save actual timestamp (as it is first we've got) - JSONNode *timestampNode = json_get(node, "timestamp"); - m_lastMessageTS = _ttoi64(ptrT(json_as_string(timestampNode))); - setDword("LastMessageTS", m_lastMessageTS); - - // And don't load any messages as it may cause duplicates - return; - } - JSONNode *sessions = json_get(node, "message_sessions"); JSONNode *nsessions = json_as_array(sessions); @@ -96,6 +88,10 @@ void CSteamProto::OnGotHistoryMessages(const HttpResponse *response, void *arg) node = json_get(message, "timestamp"); time_t timestamp = _ttoi64(ptrT(json_as_string(node))); + // Ignore already existing messages + if (timestamp <= m_lastMessageTS) + continue; + PROTORECVEVENT recv = { 0 }; recv.timestamp = timestamp; recv.szMessage = szMessage; @@ -111,10 +107,6 @@ void CSteamProto::OnGotHistoryMessages(const HttpResponse *response, void *arg) recv.flags = PREF_SENT; Proto_RecvMessage(hContact, &recv); } - - // Update last message timestamp - if (timestamp > getDword("LastMessageTS", 0)) - setDword("LastMessageTS", timestamp); } json_delete(nmessages); |