diff options
Diffstat (limited to 'protocols/Slack/src/slack_contacts.cpp')
-rw-r--r-- | protocols/Slack/src/slack_contacts.cpp | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/protocols/Slack/src/slack_contacts.cpp b/protocols/Slack/src/slack_contacts.cpp deleted file mode 100644 index 82798cb9ca..0000000000 --- a/protocols/Slack/src/slack_contacts.cpp +++ /dev/null @@ -1,168 +0,0 @@ -#include "stdafx.h" - -WORD CSlackProto::GetContactStatus(MCONTACT hContact) -{ - return getWord(hContact, "Status", ID_STATUS_OFFLINE); -} - -void CSlackProto::SetContactStatus(MCONTACT hContact, WORD status) -{ - WORD oldStatus = GetContactStatus(hContact); - if (oldStatus != status) - setWord(hContact, "Status", status); -} - -void CSlackProto::SetAllContactsStatus(WORD status) -{ - for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) - SetContactStatus(hContact, status); -} - -MCONTACT CSlackProto::GetContact(const char *userId) -{ - MCONTACT hContact = NULL; - for (hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) - { - ptrA contactPhone(getStringA(hContact, "UserId")); - if (mir_strcmp(userId, contactPhone) == 0) - break; - } - return hContact; -} - -MCONTACT CSlackProto::AddContact(const char *userId, const char *nick, bool isTemporary) -{ - MCONTACT hContact = GetContact(userId); - if (!hContact) - { - hContact = db_add_contact(); - Proto_AddToContact(hContact, m_szModuleName); - - setString(hContact, "UserId", userId); - - if (mir_strlen(nick)) - setWString(hContact, "Nick", ptrW(mir_utf8decodeW(nick))); - - DBVARIANT dbv; - if (!getWString("TeamName", &dbv) && Clist_GroupExists(dbv.ptszVal)) - { - db_set_ws(hContact, "CList", "Group", dbv.ptszVal); - db_free(&dbv); - } - - setByte(hContact, "Auth", 1); - setByte(hContact, "Grant", 1); - - if (isTemporary) - { - db_set_b(hContact, "CList", "NotOnList", 1); - } - } - return hContact; -} - -void CSlackProto::OnGotUserProfile(JSONNode &root) -{ - if (!root) - { - debugLogA(__FUNCTION__": failed to load user profile"); - return; - } - - bool isOk = root["ok"].as_bool(); - if (!isOk) - { - debugLogA(__FUNCTION__": failed to load users profile"); - return; - } - - JSONNode profile = root["profile"].as_node(); -} - -void CSlackProto::OnGotUserProfile(MCONTACT hContact, JSONNode &root) -{ - if (!root) - { - debugLogA(__FUNCTION__": failed to read users profile"); - return; - } - - CMStringW firstName = root["first_name"].as_mstring(); - setWString(hContact, "FirstName", firstName); - - CMStringW lastName = root["last_name"].as_mstring(); - setWString(hContact, "LastName", lastName); -} - -void CSlackProto::OnGotUserList(JSONNode &root, void*) -{ - if (!root) - { - debugLogA(__FUNCTION__": failed to load users list"); - return; - } - - bool isOk = root["ok"].as_bool(); - if (!isOk) - { - debugLogA(__FUNCTION__": failed to load users list"); - return; - } - - JSONNode users = root["members"].as_array(); - for (size_t i = 0; i < users.size(); i++) - { - JSONNode user = users[i]; - - json_string userId = user["id"].as_string(); - json_string nick = user["name"].as_string(); - bool isDeleted = user["deleted"].as_bool(); - MCONTACT hContact = AddContact(userId.c_str(), nick.c_str(), isDeleted); - if (hContact) - { - json_string teamId = user["team_id"].as_string(); - setString(hContact, "TeamId", teamId.c_str()); - - CMStringW status = root["status"].as_mstring(); - if (!status.IsEmpty()) - setWString(hContact, "StatusMsg", status); - - json_string presence = user["presence"].as_string(); - SetContactStatus(hContact, SlackToMirandaStatus(presence.c_str())); - - JSONNode profile = root["profile"].as_node(); - OnGotUserProfile(hContact, profile); - } - } -} - -INT_PTR CSlackProto::OnRequestAuth(WPARAM hContact, LPARAM lParam) -{ - if (!IsOnline()) - { - return -1; // ??? - } - return 0; -} - -INT_PTR CSlackProto::OnGrantAuth(WPARAM hContact, LPARAM) -{ - if (!IsOnline()) - { - // TODO: warn - return 0; - } - - return 0; -} - -int CSlackProto::OnContactDeleted(MCONTACT hContact, LPARAM) -{ - if (!IsOnline()) - { - // TODO: warn - return 0; - } - - return 0; -}
\ No newline at end of file |