From 59a422087b5c4effb87a1e3ae4340e5ce3e63719 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 14 Oct 2018 15:22:52 +0300 Subject: fixes #1157 ([Discord] In some cases, group history is missing usernames when retrieved on login) --- protocols/Discord/src/guilds.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'protocols/Discord') diff --git a/protocols/Discord/src/guilds.cpp b/protocols/Discord/src/guilds.cpp index c353533caf..5434ce4592 100644 --- a/protocols/Discord/src/guilds.cpp +++ b/protocols/Discord/src/guilds.cpp @@ -140,10 +140,6 @@ CDiscordUser* CDiscordProto::ProcessGuildChannel(CDiscordGuild *pGuild, const JS setId(pUser->hContact, DB_KEY_ID, channelId); setId(pUser->hContact, DB_KEY_CHANNELID, channelId); - - SnowFlake oldMsgId = getId(pUser->hContact, DB_KEY_LASTMSGID); - if (oldMsgId != 0 && pUser->lastMsg.id > oldMsgId) - RetrieveHistory(pUser->hContact, MSG_AFTER, oldMsgId, 99); return pUser; } @@ -227,4 +223,14 @@ void CDiscordProto::ParseGuildContents(CDiscordGuild *pGuild, const JSONNode &pR for (auto &pm : newMembers) AddGuildUser(pGuild, *pm); + + // retrieve missing histories + for (auto &it : arUsers) { + if (it->bIsPrivate || it->guildId != pGuild->id) + continue; + + SnowFlake oldMsgId = getId(it->hContact, DB_KEY_LASTMSGID); + if (oldMsgId != 0 && it->lastMsg.id > oldMsgId) + RetrieveHistory(it->hContact, MSG_AFTER, oldMsgId, 99); + } } -- cgit v1.2.3