From a61f99f45ad4707f1654544d2ba6438a8556815c Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 17 Jan 2017 16:00:54 +0300 Subject: Discord: dynamic user addition processing --- protocols/Discord/src/server.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'protocols/Discord/src/server.cpp') diff --git a/protocols/Discord/src/server.cpp b/protocols/Discord/src/server.cpp index 0b7c59fa9a..58742a63d4 100644 --- a/protocols/Discord/src/server.cpp +++ b/protocols/Discord/src/server.cpp @@ -112,35 +112,30 @@ void CDiscordProto::OnReceiveUserInfo(NETLIBHTTPREQUEST *pReply, AsyncHttpReques ptrW wszOldAvatar(getWStringA(hContact, DB_KEY_AVHASH)); - m_ownId = _wtoi64(root["id"].as_mstring()); - setId(hContact, DB_KEY_ID, m_ownId); + SnowFlake id = _wtoi64(root["id"].as_mstring()); + setId(hContact, DB_KEY_ID, id); setByte(hContact, DB_KEY_MFA, root["mfa_enabled"].as_bool()); setDword(hContact, DB_KEY_DISCR, _wtoi(root["discriminator"].as_mstring())); setWString(hContact, DB_KEY_NICK, root["username"].as_mstring()); setWString(hContact, DB_KEY_EMAIL, root["email"].as_mstring()); - switch (root["type"].as_int()) { - case 1: // confirmed - db_unset(hContact, "CList", "NotOnList"); - break; - - case 3: // expecting autorization - db_set_b(hContact, "CList", "NotOnList", 1); - break; - } - - CMStringW wszNewAvatar(root["avatar"].as_mstring()); setWString(hContact, DB_KEY_AVHASH, wszNewAvatar); if (hContact == NULL) { + m_ownId = id; + // if avatar's hash changed, we need to request a new one if (mir_wstrcmp(wszNewAvatar, wszOldAvatar)) RetrieveAvatar(NULL); OnLoggedIn(); } + else { + CDiscordUser *pUser = FindUser(id); + ProcessType(pUser, root); + } } ///////////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3