From f63eb2bfc28dff8bbf9d56dd57b2bc6b53487f56 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 29 May 2017 23:45:19 +0300 Subject: Skype: - fixes #829; - massive code cleaning --- protocols/SkypeWeb/src/request_queue.cpp | 6 +- protocols/SkypeWeb/src/requests/avatars.h | 2 +- protocols/SkypeWeb/src/requests/contacts.h | 2 +- protocols/SkypeWeb/src/requests/messages.h | 4 +- protocols/SkypeWeb/src/skype_accounts.cpp | 2 +- protocols/SkypeWeb/src/skype_avatars.cpp | 30 +-- protocols/SkypeWeb/src/skype_chatrooms.cpp | 260 +++++++++++--------------- protocols/SkypeWeb/src/skype_contacts.cpp | 86 ++++----- protocols/SkypeWeb/src/skype_db.cpp | 38 ++-- protocols/SkypeWeb/src/skype_dialogs.cpp | 31 ++- protocols/SkypeWeb/src/skype_events.cpp | 71 +++---- protocols/SkypeWeb/src/skype_files.cpp | 17 +- protocols/SkypeWeb/src/skype_history_sync.cpp | 52 ++---- protocols/SkypeWeb/src/skype_login.cpp | 145 ++++++-------- protocols/SkypeWeb/src/skype_menus.cpp | 7 +- protocols/SkypeWeb/src/skype_messages.cpp | 120 +++++------- protocols/SkypeWeb/src/skype_mslogin.cpp | 55 ++---- protocols/SkypeWeb/src/skype_oauth.cpp | 34 ++-- protocols/SkypeWeb/src/skype_options.cpp | 8 +- protocols/SkypeWeb/src/skype_polling.cpp | 83 +++----- protocols/SkypeWeb/src/skype_popups.cpp | 25 +-- protocols/SkypeWeb/src/skype_profile.cpp | 29 ++- protocols/SkypeWeb/src/skype_proto.cpp | 84 ++++----- protocols/SkypeWeb/src/skype_proto.h | 4 +- protocols/SkypeWeb/src/skype_search.cpp | 10 +- protocols/SkypeWeb/src/skype_timers.cpp | 7 +- protocols/SkypeWeb/src/skype_trouter.cpp | 42 ++--- protocols/SkypeWeb/src/skype_utils.cpp | 89 ++++----- protocols/SkypeWeb/src/stdafx.h | 2 +- protocols/SkypeWeb/src/version.h | 2 +- 30 files changed, 519 insertions(+), 828 deletions(-) (limited to 'protocols/SkypeWeb') diff --git a/protocols/SkypeWeb/src/request_queue.cpp b/protocols/SkypeWeb/src/request_queue.cpp index db030aa10f..29341dc05a 100644 --- a/protocols/SkypeWeb/src/request_queue.cpp +++ b/protocols/SkypeWeb/src/request_queue.cpp @@ -92,11 +92,9 @@ unsigned int RequestQueue::WorkerThread(void *arg) { RequestQueue *queue = (RequestQueue*)arg; - while (!queue->isTerminated) - { + while (!queue->isTerminated) { queue->hRequestQueueEvent.Wait(); - while (true) - { + while (true) { RequestQueueItem *item = NULL; { mir_cslock lock(queue->requestQueueLock); diff --git a/protocols/SkypeWeb/src/requests/avatars.h b/protocols/SkypeWeb/src/requests/avatars.h index 97b5460416..5f7c1ee36e 100644 --- a/protocols/SkypeWeb/src/requests/avatars.h +++ b/protocols/SkypeWeb/src/requests/avatars.h @@ -31,7 +31,7 @@ class SetAvatarRequest : public HttpRequest { public: SetAvatarRequest(const PBYTE data, size_t dataSize, const char *szMime, LoginInfo &li) : - HttpRequest(REQUEST_PUT, FORMAT, "api.skype.com/users/%s/profile/avatar", CMStringA(li.szSkypename.get()).MakeLower().c_str()) + HttpRequest(REQUEST_PUT, FORMAT, "api.skype.com/users/%s/profile/avatar", li.szSkypename.MakeLower().c_str()) { Headers << CHAR_VALUE("X-Skypetoken", li.api.szToken) diff --git a/protocols/SkypeWeb/src/requests/contacts.h b/protocols/SkypeWeb/src/requests/contacts.h index b2a93290e1..372b0b07e9 100644 --- a/protocols/SkypeWeb/src/requests/contacts.h +++ b/protocols/SkypeWeb/src/requests/contacts.h @@ -31,7 +31,7 @@ public: << CHAR_VALUE("Accept", "application/json"); }*/ GetContactListRequest(LoginInfo &li, const char *filter) : - HttpRequest(REQUEST_GET, FORMAT, "contacts.skype.com/contacts/v1/users/%s/contacts", CMStringA(li.szSkypename).MakeLower().GetBuffer()) + HttpRequest(REQUEST_GET, FORMAT, "contacts.skype.com/contacts/v1/users/%s/contacts", li.szSkypename.MakeLower().GetBuffer()) { if (filter != NULL) { diff --git a/protocols/SkypeWeb/src/requests/messages.h b/protocols/SkypeWeb/src/requests/messages.h index 71b4153d36..2b3b798db5 100644 --- a/protocols/SkypeWeb/src/requests/messages.h +++ b/protocols/SkypeWeb/src/requests/messages.h @@ -52,7 +52,7 @@ public: << CHAR_VALUE("Content-Type", "application/json; charset=UTF-8"); CMStringA content; - content.AppendFormat("%s %s", li.szSkypename, message); + content.AppendFormat("%s %s", li.szSkypename.c_str(), message); JSONNode node; node @@ -60,7 +60,7 @@ public: << JSONNode("messagetype", "RichText") << JSONNode("contenttype", "text") << JSONNode("content", content) - << JSONNode("skypeemoteoffset", (int)(mir_strlen(li.szSkypename) + 1)); + << JSONNode("skypeemoteoffset", li.szSkypename.GetLength() + 1); Body << VALUE(node.write().c_str()); } diff --git a/protocols/SkypeWeb/src/skype_accounts.cpp b/protocols/SkypeWeb/src/skype_accounts.cpp index 59ab76a9a9..7ea2416741 100644 --- a/protocols/SkypeWeb/src/skype_accounts.cpp +++ b/protocols/SkypeWeb/src/skype_accounts.cpp @@ -67,4 +67,4 @@ int CSkypeProto::OnAccountLoaded(WPARAM, LPARAM) INT_PTR CSkypeProto::OnAccountManagerInit(WPARAM, LPARAM lParam) { return (INT_PTR)(CSkypeOptionsMain::CreateAccountManagerPage(this, (HWND)lParam))->GetHwnd(); -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_avatars.cpp b/protocols/SkypeWeb/src/skype_avatars.cpp index 02129aa9cc..92f536de6b 100644 --- a/protocols/SkypeWeb/src/skype_avatars.cpp +++ b/protocols/SkypeWeb/src/skype_avatars.cpp @@ -19,8 +19,7 @@ along with this program. If not, see . INT_PTR CSkypeProto::SvcGetAvatarCaps(WPARAM wParam, LPARAM lParam) { - switch (wParam) - { + switch (wParam) { case AF_MAXSIZE: ((POINT*)lParam)->x = 98; ((POINT*)lParam)->y = 98; @@ -44,8 +43,7 @@ INT_PTR CSkypeProto::SvcGetAvatarCaps(WPARAM wParam, LPARAM lParam) void CSkypeProto::ReloadAvatarInfo(MCONTACT hContact) { - if (hContact == NULL) - { + if (hContact == NULL) { CallService(MS_AV_REPORTMYAVATARCHANGED, (WPARAM)m_szModuleName, 0); return; } @@ -169,23 +167,18 @@ INT_PTR CSkypeProto::SvcSetMyAvatar(WPARAM, LPARAM lParam) wchar_t *path = (wchar_t*)lParam; wchar_t avatarPath[MAX_PATH]; GetAvatarFileName(NULL, avatarPath, _countof(avatarPath)); - if (path != NULL) - { - if (CopyFile(path, avatarPath, FALSE)) - { + if (path != NULL) { + if (CopyFile(path, avatarPath, FALSE)) { FILE *hFile = _wfopen(path, L"rb"); - if (hFile) - { + if (hFile) { fseek(hFile, 0, SEEK_END); size_t length = ftell(hFile); - if (length != -1) - { + if (length != -1) { rewind(hFile); mir_ptr data((PBYTE)mir_alloc(length)); - if (data != NULL && fread(data, sizeof(BYTE), length, hFile) == length) - { + if (data != NULL && fread(data, sizeof(BYTE), length, hFile) == length) { const char *szMime = "image/jpeg"; if (fii) szMime = fii->FI_GetFIFMimeType(fii->FI_GetFIFFromFilenameU(path)); @@ -200,13 +193,8 @@ INT_PTR CSkypeProto::SvcSetMyAvatar(WPARAM, LPARAM lParam) } return -1; } - else - { - if (IsFileExists(avatarPath)) - { - DeleteFile(avatarPath); - } - } + else if (IsFileExists(avatarPath)) + DeleteFile(avatarPath); return 0; } diff --git a/protocols/SkypeWeb/src/skype_chatrooms.cpp b/protocols/SkypeWeb/src/skype_chatrooms.cpp index 0d0f304798..2e476468af 100644 --- a/protocols/SkypeWeb/src/skype_chatrooms.cpp +++ b/protocols/SkypeWeb/src/skype_chatrooms.cpp @@ -39,11 +39,9 @@ void CSkypeProto::CloseAllChatChatSessions() gci.pszModule = m_szModuleName; int count = pci->SM_GetCount(m_szModuleName); - for (int i = 0; i < count; i++) - { + for (int i = 0; i < count; i++) { gci.iItem = i; - if (!Chat_GetInfo(&gci)) - { + if (!Chat_GetInfo(&gci)) { Chat_Control(m_szModuleName, gci.pszID, SESSION_OFFLINE); Chat_Terminate(m_szModuleName, gci.pszID); } @@ -88,8 +86,7 @@ void CSkypeProto::OnLoadChats(const NETLIBHTTPREQUEST *response) if (totalCount >= 99 || conversations.size() >= 99) PushRequest(new SyncHistoryFirstRequest(syncState.c_str(), li), &CSkypeProto::OnSyncHistory); - for (size_t i = 0; i < conversations.size(); i++) - { + for (size_t i = 0; i < conversations.size(); i++) { const JSONNode &conversation = conversations.at(i); const JSONNode &threadProperties = conversation["threadProperties"]; const JSONNode &id = conversation["id"]; @@ -108,62 +105,60 @@ int CSkypeProto::OnGroupChatEventHook(WPARAM, LPARAM lParam) { GCHOOK *gch = (GCHOOK*)lParam; if (!gch) - { return 1; - } - else if (mir_strcmp(gch->pDest->pszModule, m_szModuleName) != 0) - { + + if (mir_strcmp(gch->pDest->pszModule, m_szModuleName) != 0) return 0; - } _T2A chat_id(gch->pDest->ptszID); - switch (gch->pDest->iType) - { + switch (gch->pDest->iType) { case GC_USER_MESSAGE: - { OnSendChatMessage(gch->pDest->ptszID, gch->ptszText); break; - } case GC_USER_PRIVMESS: - { - MCONTACT hContact = FindContact(_T2A(gch->ptszUID)); - if (hContact == NULL) { - hContact = AddContact(_T2A(gch->ptszUID), true); - setWord(hContact, "Status", ID_STATUS_ONLINE); - db_set_b(hContact, "CList", "Hidden", 1); - setWString(hContact, "Nick", gch->ptszUID); - db_set_dw(hContact, "Ignore", "Mask1", 0); + MCONTACT hContact = FindContact(_T2A(gch->ptszUID)); + if (hContact == NULL) { + hContact = AddContact(_T2A(gch->ptszUID), true); + setWord(hContact, "Status", ID_STATUS_ONLINE); + db_set_b(hContact, "CList", "Hidden", 1); + setWString(hContact, "Nick", gch->ptszUID); + db_set_dw(hContact, "Ignore", "Mask1", 0); + } + CallService(MS_MSG_SENDMESSAGEW, hContact, 0); } - CallService(MS_MSG_SENDMESSAGEW, hContact, 0); break; - } case GC_USER_LOGMENU: - { - switch (gch->dwData) - { - case 10: { - CSkypeInviteDlg dlg(this); - - { mir_cslock lck(m_InviteDialogsLock); m_InviteDialogs.insert(&dlg); } - - if(!dlg.DoModal()) break; - MCONTACT hContact = dlg.m_hContact; - if (hContact != NULL) + switch (gch->dwData) { + case 10: { - SendRequest(new InviteUserToChatRequest(chat_id, Contacts[hContact], "User", li)); - } + CSkypeInviteDlg dlg(this); + { + mir_cslock lck(m_InviteDialogsLock); + m_InviteDialogs.insert(&dlg); + } + + if (!dlg.DoModal()) + break; - { mir_cslock lck(m_InviteDialogsLock); m_InviteDialogs.remove(&dlg); } + MCONTACT hContact = dlg.m_hContact; + if (hContact != NULL) + SendRequest(new InviteUserToChatRequest(chat_id, Contacts[hContact], "User", li)); + { + mir_cslock lck(m_InviteDialogsLock); + m_InviteDialogs.remove(&dlg); + } + } break; - } + case 20: OnLeaveChatRoom(FindChatRoom(chat_id), NULL); break; + case 30: CMStringW newTopic = ChangeTopicForm(); if (!newTopic.IsEmpty()) @@ -171,83 +166,73 @@ int CSkypeProto::OnGroupChatEventHook(WPARAM, LPARAM lParam) break; } break; - } case GC_USER_NICKLISTMENU: - { - - _T2A user_id(gch->ptszUID); - - - switch (gch->dwData) { - case 10: - SendRequest(new KickUserRequest(chat_id, user_id, li)); - break; - case 30: - SendRequest(new InviteUserToChatRequest(chat_id, user_id, "Admin", li)); - break; - case 40: - SendRequest(new InviteUserToChatRequest(chat_id, user_id, "User", li)); - break; - case 50: - ptrW tnick_old(GetChatContactNick(chat_id, _T2A(gch->ptszUID), _T2A(gch->ptszText))); - - ENTER_STRING pForm = { sizeof(pForm) }; - pForm.type = ESF_COMBO; - pForm.recentCount = 0; - pForm.caption = TranslateT("Enter new nickname"); - pForm.ptszInitVal = tnick_old; - pForm.szModuleName = m_szModuleName; - pForm.szDataPrefix = "renamenick_"; - - if (EnterString(&pForm)) - { - MCONTACT hChatContact = FindChatRoom(chat_id); - if (hChatContact == NULL) - break; // This probably shouldn't happen, but if chat is NULL for some reason, do nothing + _T2A user_id(gch->ptszUID); - ptrW tnick_new(pForm.ptszResult); - bool reset = mir_wstrlen(tnick_new) == 0; - if (reset) - { - // User fill blank name, which means we reset the custom nick - db_unset(hChatContact, "UsersNicks", _T2A(gch->ptszUID)); - tnick_new = GetChatContactNick(chat_id, _T2A(gch->ptszUID), _T2A(gch->ptszText)); + switch (gch->dwData) { + case 10: + SendRequest(new KickUserRequest(chat_id, user_id, li)); + break; + case 30: + SendRequest(new InviteUserToChatRequest(chat_id, user_id, "Admin", li)); + break; + case 40: + SendRequest(new InviteUserToChatRequest(chat_id, user_id, "User", li)); + break; + case 50: + ptrW tnick_old(GetChatContactNick(chat_id, _T2A(gch->ptszUID), _T2A(gch->ptszText))); + + ENTER_STRING pForm = { sizeof(pForm) }; + pForm.type = ESF_COMBO; + pForm.recentCount = 0; + pForm.caption = TranslateT("Enter new nickname"); + pForm.ptszInitVal = tnick_old; + pForm.szModuleName = m_szModuleName; + pForm.szDataPrefix = "renamenick_"; + + if (EnterString(&pForm)) { + MCONTACT hChatContact = FindChatRoom(chat_id); + if (hChatContact == NULL) + break; // This probably shouldn't happen, but if chat is NULL for some reason, do nothing + + ptrW tnick_new(pForm.ptszResult); + bool reset = mir_wstrlen(tnick_new) == 0; + if (reset) { + // User fill blank name, which means we reset the custom nick + db_unset(hChatContact, "UsersNicks", _T2A(gch->ptszUID)); + tnick_new = GetChatContactNick(chat_id, _T2A(gch->ptszUID), _T2A(gch->ptszText)); + } + + if (!mir_wstrcmp(tnick_old, tnick_new)) + break; // New nick is same, do nothing + + GCDEST gcd = { m_szModuleName, gch->pDest->ptszID, GC_EVENT_NICK }; + GCEVENT gce = { &gcd }; + + gce.ptszNick = tnick_old; + gce.bIsMe = IsMe(user_id); + gce.ptszUID = gch->ptszUID; + gce.ptszText = tnick_new; + gce.dwFlags = GCEF_ADDTOLOG; + gce.time = time(NULL); + Chat_Event(&gce); + + if (!reset) + db_set_ws(hChatContact, "UsersNicks", _T2A(gch->ptszUID), tnick_new); } - - if (!mir_wstrcmp(tnick_old, tnick_new)) - break; // New nick is same, do nothing - - GCDEST gcd = { m_szModuleName, gch->pDest->ptszID, GC_EVENT_NICK }; - GCEVENT gce = { &gcd }; - - gce.ptszNick = tnick_old; - gce.bIsMe = IsMe(user_id); - gce.ptszUID = gch->ptszUID; - gce.ptszText = tnick_new; - gce.dwFlags = GCEF_ADDTOLOG; - gce.time = time(NULL); - Chat_Event(&gce); - - if (!reset) - db_set_ws(hChatContact, "UsersNicks", _T2A(gch->ptszUID), tnick_new); + break; } - break; - } - - break; - } } return 0; } INT_PTR CSkypeProto::OnJoinChatRoom(WPARAM hContact, LPARAM) { - if (hContact) - { + if (hContact) { ptrW idT(getWStringA(hContact, "ChatRoomID")); ptrW nameT(getWStringA(hContact, "Nick")); StartChatRoom(idT, nameT != NULL ? nameT : idT); @@ -260,8 +245,7 @@ INT_PTR CSkypeProto::OnLeaveChatRoom(WPARAM hContact, LPARAM) if (!IsOnline()) return 1; - if (hContact && IDYES == MessageBox(NULL, TranslateT("This chat is going to be destroyed forever with all its contents. This action cannot be undone. Are you sure?"), TranslateT("Warning"), MB_YESNO | MB_ICONQUESTION)) - { + if (hContact && IDYES == MessageBox(NULL, TranslateT("This chat is going to be destroyed forever with all its contents. This action cannot be undone. Are you sure?"), TranslateT("Warning"), MB_YESNO | MB_ICONQUESTION)) { ptrW idT(getWStringA(hContact, "ChatRoomID")); Chat_Control(m_szModuleName, idT, SESSION_OFFLINE); Chat_Terminate(m_szModuleName, idT); @@ -288,18 +272,16 @@ void CSkypeProto::OnChatEvent(const JSONNode &node) std::string strContent = node["content"].as_string(); int nEmoteOffset = node["skypeemoteoffset"].as_int(); - + if (FindChatRoom(szConversationName) == NULL) SendRequest(new GetChatInfoRequest(szConversationName, li), &CSkypeProto::OnGetChatInfo, szTopic.Detach()); std::string messageType = node["messagetype"].as_string(); - if (messageType == "Text" || messageType == "RichText") - { + if (messageType == "Text" || messageType == "RichText") { ptrA szClearedContent(messageType == "RichText" ? RemoveHtml(strContent.c_str()) : mir_strdup(strContent.c_str())); AddMessageToChat(_A2T(szConversationName), _A2T(szFromSkypename), szClearedContent, nEmoteOffset != NULL, nEmoteOffset, timestamp); } - else if (messageType == "ThreadActivity/AddMember") - { + else if (messageType == "ThreadActivity/AddMember") { ptrA xinitiator, xtarget, initiator; //content = 14291862291648:initiator8:user @@ -307,8 +289,7 @@ void CSkypeProto::OnChatEvent(const JSONNode &node) if (xml == NULL) return; - for (int i = 0; i < xmlGetChildCount(xml); i++) - { + for (int i = 0; i < xmlGetChildCount(xml); i++) { HXML xmlNode = xmlGetNthChild(xml, L"target", i); if (xmlNode == NULL) break; @@ -320,8 +301,7 @@ void CSkypeProto::OnChatEvent(const JSONNode &node) } xmlDestroyNode(xml); } - else if (messageType == "ThreadActivity/DeleteMember") - { + else if (messageType == "ThreadActivity/DeleteMember") { ptrA xinitiator, xtarget; //content = 14291862291648:initiator8:user @@ -343,8 +323,7 @@ void CSkypeProto::OnChatEvent(const JSONNode &node) RemoveChatContact(_A2T(szConversationName), target, target, true, initiator); } - else if (messageType == "ThreadActivity/TopicUpdate") - { + else if (messageType == "ThreadActivity/TopicUpdate") { //content=14295327021308:usertest topic ptrA xinitiator, value; HXML xml = xmlParseString(ptrW(mir_utf8decodeW(strContent.c_str())), 0, L"topicupdate"); @@ -362,8 +341,7 @@ void CSkypeProto::OnChatEvent(const JSONNode &node) RenameChat(szConversationName, value); ChangeChatTopic(szConversationName, value, initiator); } - else if (messageType == "ThreadActivity/RoleUpdate") - { + else if (messageType == "ThreadActivity/RoleUpdate") { //content=14295512583638:user8:user1admin ptrA xinitiator, xId, xRole; HXML xml = xmlParseString(ptrW(mir_utf8decodeW(strContent.c_str())), 0, L"roleupdate"); @@ -372,15 +350,14 @@ void CSkypeProto::OnChatEvent(const JSONNode &node) xinitiator = xmlNode != NULL ? mir_u2a(xmlGetText(xmlNode)) : NULL; xmlNode = xmlGetChildByPath(xml, L"target", 0); - if (xmlNode != NULL) - { + if (xmlNode != NULL) { HXML xmlId = xmlGetChildByPath(xmlNode, L"id", 0); HXML xmlRole = xmlGetChildByPath(xmlNode, L"role", 0); xId = xmlId != NULL ? mir_u2a(xmlGetText(xmlId)) : NULL; xRole = xmlRole != NULL ? mir_u2a(xmlGetText(xmlRole)) : NULL; } xmlDestroyNode(xml); - + CMStringA initiator = ParseUrl(xinitiator, "8:"); CMStringA id = ParseUrl(xId, "8:"); @@ -424,7 +401,7 @@ void CSkypeProto::AddMessageToChat(const wchar_t *chat_id, const wchar_t *from, { GCDEST gcd = { m_szModuleName, chat_id, isAction ? GC_EVENT_ACTION : GC_EVENT_MESSAGE }; GCEVENT gce = { &gcd }; - + ptrW tnick(GetChatContactNick(_T2A(chat_id), _T2A(from), _T2A(from))); gce.bIsMe = IsMe(_T2A(from)); @@ -435,15 +412,11 @@ void CSkypeProto::AddMessageToChat(const wchar_t *chat_id, const wchar_t *from, CMStringW tszText(ptrW(mir_utf8decodeW(content))); tszText.Replace(L"%", L"%%"); - if (!isAction) - { + if (!isAction) { gce.ptszText = tszText; gce.dwFlags = GCEF_ADDTOLOG; } - else - { - gce.ptszText = &(tszText.GetBuffer())[emoteOffset]; - } + else gce.ptszText = &(tszText.GetBuffer())[emoteOffset]; if (isLoading) gce.dwFlags = GCEF_NOTNOTIFY; @@ -467,8 +440,7 @@ void CSkypeProto::OnGetChatInfo(const NETLIBHTTPREQUEST *response, void *p) CMStringA chatId(UrlToSkypename(root["messages"].as_string().c_str())); StartChatRoom(_A2T(chatId), topic); - for (size_t i = 0; i < members.size(); i++) - { + for (size_t i = 0; i < members.size(); i++) { const JSONNode &member = members.at(i); CMStringA username(UrlToSkypename(member["userLink"].as_string().c_str())); @@ -516,7 +488,8 @@ char *CSkypeProto::GetChatUsers(const wchar_t *chat_id) return gci.pszUsers; } -wchar_t* CSkypeProto::GetChatContactNick(const char *chat_id, const char *id, const char *name) { +wchar_t* CSkypeProto::GetChatContactNick(const char *chat_id, const char *id, const char *name) +{ // Check if there is custom nick for this chat contact if (chat_id != NULL) { if (wchar_t *tname = db_get_wsa(FindChatRoom(chat_id), "UsersNicks", id)) @@ -524,14 +497,12 @@ wchar_t* CSkypeProto::GetChatContactNick(const char *chat_id, const char *id, co } // Check if we have this contact in database - if (IsMe(id)) - { + if (IsMe(id)) { // Return my nick if (wchar_t *tname = getWStringA(NULL, "Nick")) return tname; } - else - { + else { MCONTACT hContact = FindContact(id); if (hContact != NULL) { // Primarily return custom name @@ -583,15 +554,13 @@ void CSkypeProto::RemoveChatContact(const wchar_t *tchat_id, const char *id, con GCDEST gcd = { m_szModuleName, tchat_id, isKick ? GC_EVENT_KICK : GC_EVENT_PART }; GCEVENT gce = { &gcd }; - if (isKick) - { + if (isKick) { gce.ptszUID = tid; gce.ptszNick = tnick; gce.ptszStatus = tinitiator; gce.time = time(NULL); } - else - { + else { gce.dwFlags = GCEF_ADDTOLOG; gce.ptszNick = tnick; gce.ptszUID = tid; @@ -604,8 +573,7 @@ void CSkypeProto::RemoveChatContact(const wchar_t *tchat_id, const char *id, con INT_PTR CSkypeProto::SvcCreateChat(WPARAM, LPARAM) { - if (IsOnline()) - { + if (IsOnline()) { CSkypeGCCreateDlg dlg(this); { mir_cslock lck(m_GCCreateDialogsLock); m_GCCreateDialogs.insert(&dlg); } @@ -613,7 +581,7 @@ INT_PTR CSkypeProto::SvcCreateChat(WPARAM, LPARAM) if (!dlg.DoModal()) { return 1; } SendRequest(new CreateChatroomRequest(dlg.m_ContactsList, li)); - + { mir_cslock lck(m_GCCreateDialogsLock); m_GCCreateDialogs.remove(&dlg); } return 0; } @@ -627,8 +595,7 @@ int CSkypeProto::OnGroupChatMenuHook(WPARAM, LPARAM lParam) GCMENUITEMS *gcmi = (GCMENUITEMS*)lParam; if (mir_strcmpi(gcmi->pszModule, m_szModuleName)) return 0; - if (gcmi->Type == MENU_ON_LOG) - { + if (gcmi->Type == MENU_ON_LOG) { static const struct gc_item Items[] = { { LPGENW("&Invite user..."), 10, MENU_ITEM, FALSE }, @@ -637,8 +604,7 @@ int CSkypeProto::OnGroupChatMenuHook(WPARAM, LPARAM lParam) }; Chat_AddMenuItems(gcmi->hMenu, _countof(Items), Items); } - else if (gcmi->Type == MENU_ON_NICKLIST) - { + else if (gcmi->Type == MENU_ON_NICKLIST) { static const struct gc_item Items[] = { { LPGENW("Kick &user"), 10, MENU_ITEM }, @@ -663,4 +629,4 @@ CMStringW CSkypeProto::ChangeTopicForm() pForm.ptszInitVal = NULL; pForm.szModuleName = m_szModuleName; return (!EnterString(&pForm)) ? CMStringW() : CMStringW(ptrW(pForm.ptszResult)); -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_contacts.cpp b/protocols/SkypeWeb/src/skype_contacts.cpp index d1781a386a..add5caadf7 100644 --- a/protocols/SkypeWeb/src/skype_contacts.cpp +++ b/protocols/SkypeWeb/src/skype_contacts.cpp @@ -25,8 +25,7 @@ WORD CSkypeProto::GetContactStatus(MCONTACT hContact) void CSkypeProto::SetContactStatus(MCONTACT hContact, WORD status) { WORD oldStatus = GetContactStatus(hContact); - if (oldStatus != status) - { + if (oldStatus != status) { setWord(hContact, "Status", status); if (status == ID_STATUS_OFFLINE) db_unset(hContact, m_szModuleName, "MirVer"); @@ -35,8 +34,7 @@ void CSkypeProto::SetContactStatus(MCONTACT hContact, WORD status) void CSkypeProto::SetAllContactsStatus(WORD status) { - for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) - { + for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) { if (!isChatRoom(hContact)) SetContactStatus(hContact, status); } @@ -72,8 +70,7 @@ MCONTACT CSkypeProto::GetContactFromAuthEvent(MEVENT hEvent) MCONTACT CSkypeProto::FindContact(const char *skypename) { MCONTACT hContact = NULL; - for (hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) - { + for (hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) { if (!mir_strcmpi(skypename, Contacts[hContact])) break; } @@ -84,16 +81,14 @@ MCONTACT CSkypeProto::AddContact(const char *skypename, bool isTemporary) { MCONTACT hContact = FindContact(skypename); - if (!hContact) - { + if (!hContact) { hContact = db_add_contact(); Proto_AddToContact(hContact, m_szModuleName); setString(hContact, SKYPE_SETTINGS_ID, skypename); DBVARIANT dbv; - if (!getWString(SKYPE_SETTINGS_GROUP, &dbv)) - { + if (!getWString(SKYPE_SETTINGS_GROUP, &dbv)) { db_set_ws(hContact, "CList", "Group", dbv.ptszVal); db_free(&dbv); } @@ -117,8 +112,7 @@ void CSkypeProto::LoadContactsAuth(const NETLIBHTTPREQUEST *response) return; const JSONNode &items = root.as_array(); - for (size_t i = 0; i < items.size(); i++) - { + for (size_t i = 0; i < items.size(); i++) { const JSONNode &item = items.at(i); if (!item) break; @@ -128,12 +122,10 @@ void CSkypeProto::LoadContactsAuth(const NETLIBHTTPREQUEST *response) time_t eventTime = IsoToUnixTime(item["event_time_iso"].as_string().c_str()); MCONTACT hContact = AddContact(skypename.c_str()); - if (hContact) - { + if (hContact) { time_t lastEventTime = db_get_dw(hContact, m_szModuleName, "LastAuthRequestTime", 0); - if (lastEventTime < eventTime) - { + if (lastEventTime < eventTime) { db_set_dw(hContact, m_szModuleName, "LastAuthRequestTime", eventTime); delSetting(hContact, "Auth"); @@ -161,16 +153,14 @@ void CSkypeProto::LoadContactsInfo(const NETLIBHTTPREQUEST *response) return; const JSONNode &items = root.as_array(); - for (size_t i = 0; i < items.size(); i++) - { + for (size_t i = 0; i < items.size(); i++) { const JSONNode &item = items.at(i); if (!item) break; std::string skypename = item["username"].as_string(); MCONTACT hContact = AddContact(skypename.c_str()); - if (hContact) - { + if (hContact) { UpdateProfileCountry(item, hContact); UpdateProfileCity(item, hContact); UpdateProfileXStatusMessage(item, hContact); @@ -193,8 +183,7 @@ void CSkypeProto::LoadContactList(const NETLIBHTTPREQUEST *response) LIST skypenames(1); bool loadAll = getBool("LoadAllContacts", false); const JSONNode &items = root["contacts"].as_array(); - for (size_t i = 0; i < items.size(); i++) - { + for (size_t i = 0; i < items.size(); i++) { const JSONNode &item = items.at(i); if (!item) break; @@ -208,29 +197,23 @@ void CSkypeProto::LoadContactList(const NETLIBHTTPREQUEST *response) CMStringW last_name = name["surname"].as_mstring(); CMStringW avatar_url = item["avatar_url"].as_mstring(); std::string type = item["type"].as_string(); - - if (type == "skype" || loadAll) - { + + if (type == "skype" || loadAll) { MCONTACT hContact = AddContact(skypename.c_str()); - if (hContact) - { - if (item["authorized"].as_bool()) - { + if (hContact) { + if (item["authorized"].as_bool()) { delSetting(hContact, "Auth"); delSetting(hContact, "Grant"); } else setByte(hContact, "Grant", 1); - if (item["blocked"].as_bool()) - { + if (item["blocked"].as_bool()) { db_set_dw(hContact, "Ignore", "Mask1", 127); db_set_b(hContact, "CList", "Hidden", 1); setByte(hContact, "IsBlocked", 1); } - else - { - if (db_get_b(hContact, m_szModuleName, "IsBlocked", 0)) - { + else { + if (db_get_b(hContact, m_szModuleName, "IsBlocked", 0)) { db_set_dw(hContact, "Ignore", "Mask1", 0); db_set_b(hContact, "CList", "Hidden", 0); setByte(hContact, "IsBlocked", 0); @@ -239,31 +222,28 @@ void CSkypeProto::LoadContactList(const NETLIBHTTPREQUEST *response) setString(hContact, "Type", type.c_str()); - if (display_name) - setWString(hContact, "Nick", display_name); - if (first_name) - setWString(hContact, "FirstName", first_name); + if (display_name) + setWString(hContact, "Nick", display_name); + if (first_name) + setWString(hContact, "FirstName", first_name); if (last_name) - setWString(hContact, "LastName", last_name); + setWString(hContact, "LastName", last_name); - if (item["mood"]) - { + if (item["mood"]) { db_set_utf(hContact, "CList", "StatusMsg", ptrA(RemoveHtml(item["mood"].as_string().c_str()))); } SetAvatarUrl(hContact, avatar_url); ReloadAvatarInfo(hContact); - for (size_t j = 0; j < phones.size(); j++) - { + for (size_t j = 0; j < phones.size(); j++) { const JSONNode &phone = phones.at(j); if (!phone) break; CMStringW number = phone["number"].as_mstring(); - switch (phone["type"].as_int()) - { + switch (phone["type"].as_int()) { case 0: setWString(hContact, "Phone", number); break; @@ -273,22 +253,20 @@ void CSkypeProto::LoadContactList(const NETLIBHTTPREQUEST *response) } } - if (type == "skype") skypenames.insert(mir_strdup(skypename.c_str())); + if (type == "skype") + skypenames.insert(mir_strdup(skypename.c_str())); } } } - if (skypenames.getCount() > 0) - { + if (skypenames.getCount() > 0) { int i = 0; - do - { + do { LIST users(1); for (; i < skypenames.getCount() && users.getCount() <= 50; i++) users.insert(skypenames[i]); PushRequest(new GetContactsInfoRequest(li, users), &CSkypeProto::LoadContactsInfo); - } - while(i < skypenames.getCount()); + } while (i < skypenames.getCount()); FreeList(skypenames); skypenames.destroy(); @@ -355,4 +333,4 @@ void CSkypeProto::OnUnblockContact(const NETLIBHTTPREQUEST *response, void *p) db_set_dw(hContact, "Ignore", "Mask1", 0); db_set_b(hContact, "CList", "Hidden", 0); db_set_b(hContact, m_szModuleName, "IsBlocked", 0); -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_db.cpp b/protocols/SkypeWeb/src/skype_db.cpp index 2dbe2ced90..8bd6ab79e7 100644 --- a/protocols/SkypeWeb/src/skype_db.cpp +++ b/protocols/SkypeWeb/src/skype_db.cpp @@ -39,8 +39,7 @@ MEVENT CSkypeProto::GetMessageFromDb(MCONTACT hContact, const char *messageId, L size_t messageIdLength = mir_strlen(messageId); mir_cslock lock(messageSyncLock); - for (MEVENT hDbEvent = db_event_last(hContact); hDbEvent; hDbEvent = db_event_prev(hContact, hDbEvent)) - { + for (MEVENT hDbEvent = db_event_last(hContact); hDbEvent; hDbEvent = db_event_prev(hContact, hDbEvent)) { DBEVENTINFO dbei = {}; dbei.cbBlob = db_event_getBlobSize(hDbEvent); @@ -86,28 +85,24 @@ MEVENT CSkypeProto::AppendDBEvent(MCONTACT hContact, MEVENT hEvent, const char * db_event_get(hEvent, &dbei); JSONNode jMsg = JSONNode::parse((char*)dbei.pBlob); - if (jMsg) - { + if (jMsg) { JSONNode &jEdits = jMsg["edits"]; - if (jEdits) - { - for (auto it = jEdits.begin(); it != jEdits.end(); ++it) - { + if (jEdits) { + for (auto it = jEdits.begin(); it != jEdits.end(); ++it) { const JSONNode &jEdit = *it; if (jEdit["time"].as_int() == edit_time) return hEvent; } JSONNode jEdit; - jEdit + jEdit << JSONNode("time", (long)edit_time) << JSONNode("text", szContent); jEdits << jEdit; } } - else - { + else { jMsg = JSONNode(); JSONNode jOriginalMsg; jOriginalMsg.set_name("original_message"); JSONNode jEdits(JSON_ARRAY); jEdits.set_name("edits"); @@ -119,28 +114,28 @@ MEVENT CSkypeProto::AppendDBEvent(MCONTACT hContact, MEVENT hEvent, const char * jMsg << jOriginalMsg; - jEdit + jEdit << JSONNode("time", (long)edit_time) << JSONNode("text", szContent); - jEdits << jEdit; - jMsg << jEdits; + jEdits << jEdit; + jMsg << jEdits; } - db_event_delete(hContact, hEvent); + db_event_delete(hContact, hEvent); return AddDbEvent(SKYPE_DB_EVENT_TYPE_EDITED_MESSAGE, hContact, dbei.timestamp, dbei.flags, jMsg.write().c_str(), szUid); } MEVENT CSkypeProto::AddEventToDb(MCONTACT hContact, WORD type, DWORD timestamp, DWORD flags, DWORD cbBlob, PBYTE pBlob) { DBEVENTINFO dbei = {}; - dbei.szModule = m_szModuleName; + dbei.szModule = m_szModuleName; dbei.timestamp = timestamp; dbei.eventType = type; - dbei.cbBlob = cbBlob; - dbei.pBlob = pBlob; - dbei.flags = flags; + dbei.cbBlob = cbBlob; + dbei.pBlob = pBlob; + dbei.flags = flags; return db_event_add(hContact, &dbei); } @@ -155,8 +150,7 @@ void CSkypeProto::InitDBEvents() dbEventType.iconService = MODULE "/GetEventIcon"; dbEventType.textService = MODULE "/GetEventText"; - for (size_t i = 0; i < _countof(g_SkypeDBTypes); i++) - { + for (size_t i = 0; i < _countof(g_SkypeDBTypes); i++) { SkypeDBType &cur = g_SkypeDBTypes[i]; dbEventType.eventType = cur.type; @@ -167,4 +161,4 @@ void CSkypeProto::InitDBEvents() dbEventType.flags &= (~cur.flags); } -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_dialogs.cpp b/protocols/SkypeWeb/src/skype_dialogs.cpp index 21fcd6b56a..f37232a728 100644 --- a/protocols/SkypeWeb/src/skype_dialogs.cpp +++ b/protocols/SkypeWeb/src/skype_dialogs.cpp @@ -19,14 +19,12 @@ along with this program. If not, see . void CSkypeProto::CloseDialogs() { - { - mir_cslock lck(m_GCCreateDialogsLock); + { mir_cslock lck(m_GCCreateDialogsLock); for (int i = 0; i < m_GCCreateDialogs.getCount(); i++) m_GCCreateDialogs[i]->Close(); } - { - mir_cslock lck(m_InviteDialogsLock); + { mir_cslock lck(m_InviteDialogsLock); for (int i = 0; i < m_InviteDialogs.getCount(); i++) m_InviteDialogs[i]->Close(); } @@ -34,17 +32,15 @@ void CSkypeProto::CloseDialogs() //CSkypeInvideDlg CSkypeInviteDlg::CSkypeInviteDlg(CSkypeProto *proto) : -CSkypeDlgBase(proto, IDD_GC_INVITE, false), m_ok(this, IDOK), m_cancel(this, IDCANCEL), m_combo(this, IDC_CONTACT), m_hContact(NULL) + CSkypeDlgBase(proto, IDD_GC_INVITE, false), m_ok(this, IDOK), m_cancel(this, IDCANCEL), m_combo(this, IDC_CONTACT), m_hContact(NULL) { m_ok.OnClick = Callback(this, &CSkypeInviteDlg::btnOk_OnOk); } void CSkypeInviteDlg::OnInitDialog() { - for (MCONTACT hContact = db_find_first(m_proto->m_szModuleName); hContact; hContact = db_find_next(hContact, m_proto->m_szModuleName)) - { - if (!m_proto->isChatRoom(hContact)) - { + for (MCONTACT hContact = db_find_first(m_proto->m_szModuleName); hContact; hContact = db_find_next(hContact, m_proto->m_szModuleName)) { + if (!m_proto->isChatRoom(hContact)) { wchar_t *ptszNick = pcli->pfnGetContactDisplayName(hContact, 0); m_combo.AddString(ptszNick, hContact); } @@ -63,6 +59,7 @@ CSkypeGCCreateDlg::CSkypeGCCreateDlg(CSkypeProto *proto) : m_ok.OnClick = Callback(this, &CSkypeGCCreateDlg::btnOk_OnOk); m_clc.OnListRebuilt = Callback(this, &CSkypeGCCreateDlg::FilterList); } + CSkypeGCCreateDlg::~CSkypeGCCreateDlg() { CSkypeProto::FreeList(m_ContactsList); @@ -80,14 +77,10 @@ void CSkypeGCCreateDlg::OnInitDialog() void CSkypeGCCreateDlg::btnOk_OnOk(CCtrlButton*) { - for (MCONTACT hContact = db_find_first(m_proto->m_szModuleName); hContact; hContact = db_find_next(hContact, m_proto->m_szModuleName)) - { - if (!m_proto->isChatRoom(hContact)) - { - if (HANDLE hItem = m_clc.FindContact(hContact)) - { - if (m_clc.GetCheck(hItem)) - { + for (MCONTACT hContact = db_find_first(m_proto->m_szModuleName); hContact; hContact = db_find_next(hContact, m_proto->m_szModuleName)) { + if (!m_proto->isChatRoom(hContact)) { + if (HANDLE hItem = m_clc.FindContact(hContact)) { + if (m_clc.GetCheck(hItem)) { char *szName = mir_strdup(m_proto->Contacts[hContact]); if (szName != NULL) m_ContactsList.insert(szName); @@ -95,7 +88,7 @@ void CSkypeGCCreateDlg::btnOk_OnOk(CCtrlButton*) } } } - m_ContactsList.insert(m_proto->li.szSkypename); + m_ContactsList.insert(m_proto->li.szSkypename.GetBuffer()); EndDialog(m_hwnd, m_ContactsList.getCount()); } @@ -120,4 +113,4 @@ void CSkypeGCCreateDlg::ResetListOptions(CCtrlClc *) m_clc.SetHideOfflineRoot(true); for (int i = 0; i <= FONTID_MAX; i++) m_clc.SetTextColor(i, GetSysColor(COLOR_WINDOWTEXT)); -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_events.cpp b/protocols/SkypeWeb/src/skype_events.cpp index 4e07fb6f26..ad278aeee7 100644 --- a/protocols/SkypeWeb/src/skype_events.cpp +++ b/protocols/SkypeWeb/src/skype_events.cpp @@ -22,21 +22,18 @@ INT_PTR CSkypeProto::GetEventText(WPARAM pEvent, LPARAM datatype) { DBEVENTINFO *dbei = (DBEVENTINFO*)pEvent; - CMStringA szText; + CMStringA szText; BOOL bUseBB = db_get_b(NULL, dbei->szModule, "UseBBCodes", 1); - switch (dbei->eventType) - { + switch (dbei->eventType) { case SKYPE_DB_EVENT_TYPE_EDITED_MESSAGE: { JSONNode jMsg = JSONNode::parse((char*)dbei->pBlob); - if (jMsg) - { + if (jMsg) { JSONNode &jOriginalMsg = jMsg["original_message"]; szText.AppendFormat(bUseBB ? Translate("[b]Original message:[/b]\n%s\n") : Translate("Original message:\n%s\n"), mir_utf8decodeA(jOriginalMsg["text"].as_string().c_str())); JSONNode &jEdits = jMsg["edits"]; - for (auto it = jEdits.begin(); it != jEdits.end(); ++it) - { + for (auto it = jEdits.begin(); it != jEdits.end(); ++it) { const JSONNode &jEdit = *it; time_t time = jEdit["time"].as_int(); @@ -45,10 +42,9 @@ INT_PTR CSkypeProto::GetEventText(WPARAM pEvent, LPARAM datatype) szText.AppendFormat(bUseBB ? Translate("[b]Edited at %s:[/b]\n%s\n") : Translate("Edited at %s:\n%s\n"), szTime, mir_utf8decodeA(jEdit["text"].as_string().c_str())); } - + } - else - { + else { szText = INVALID_DATA; } break; @@ -57,39 +53,31 @@ INT_PTR CSkypeProto::GetEventText(WPARAM pEvent, LPARAM datatype) case SKYPE_DB_EVENT_TYPE_CALL_INFO: { HXML xml = xmlParseString(ptrW(mir_utf8decodeW((char*)dbei->pBlob)), 0, L"partlist"); - if (xml != NULL) - { + if (xml != NULL) { ptrA type(mir_u2a(xmlGetAttrValue(xml, L"type"))); bool bType = (!mir_strcmpi(type, "started")) ? 1 : 0; time_t callDuration = 0; - for (int i = 0; i < xmlGetChildCount(xml); i++) - { - HXML xmlPart = xmlGetNthChild(xml, L"part", i); - if (xmlPart != NULL) - { + for (int i = 0; i < xmlGetChildCount(xml); i++) { + HXML xmlPart = xmlGetNthChild(xml, L"part", i); + if (xmlPart != NULL) { HXML xmlDuration = xmlGetChildByPath(xmlPart, L"duration", 0); - - if (xmlDuration != NULL) - { + + if (xmlDuration != NULL) { callDuration = _wtol(xmlGetText(xmlDuration)); break; } } } - if (bType) - { + if (bType) { szText = Translate("Call"); } - else - { - if (callDuration == 0) - { + else { + if (callDuration == 0) { szText = Translate("Call missed"); } - else - { + else { char szTime[100]; strftime(szTime, sizeof(szTime), "%X", gmtime(&callDuration)); szText.Format(Translate("Call ended (%s)"), szTime); @@ -97,8 +85,7 @@ INT_PTR CSkypeProto::GetEventText(WPARAM pEvent, LPARAM datatype) } xmlDestroyNode(xml); } - else - { + else { szText = INVALID_DATA; } break; @@ -106,18 +93,14 @@ INT_PTR CSkypeProto::GetEventText(WPARAM pEvent, LPARAM datatype) case SKYPE_DB_EVENT_TYPE_FILETRANSFER_INFO: { HXML xml = xmlParseString(ptrW(mir_utf8decodeW((char*)dbei->pBlob)), 0, L"files"); - if (xml != NULL) - { - for (int i = 0; i < xmlGetChildCount(xml); i++) - { + if (xml != NULL) { + for (int i = 0; i < xmlGetChildCount(xml); i++) { LONGLONG fileSize = 0; HXML xmlNode = xmlGetNthChild(xml, L"file", i); - if (xmlNode != NULL) - { + if (xmlNode != NULL) { fileSize = _wtol(xmlGetAttrValue(xmlNode, L"size")); char *fileName = _T2A(xmlGetText(xmlNode)); - if (fileName != NULL) - { + if (fileName != NULL) { szText.AppendFormat(Translate("File transfer:\n\tFile name: %s \n\tSize: %lld bytes \n"), fileName, fileSize); } @@ -125,8 +108,7 @@ INT_PTR CSkypeProto::GetEventText(WPARAM pEvent, LPARAM datatype) } xmlDestroyNode(xml); } - else - { + else { szText = INVALID_DATA; } } @@ -137,18 +119,15 @@ INT_PTR CSkypeProto::GetEventText(WPARAM pEvent, LPARAM datatype) case SKYPE_DB_EVENT_TYPE_URIOBJ: { HXML xml = xmlParseString(ptrW(mir_utf8decodeW((char*)dbei->pBlob)), 0, L"URIObject"); - if (xml != NULL) - { + if (xml != NULL) { //szText.Append(_T2A(xmlGetText(xml))); HXML xmlA = xmlGetChildByPath(xml, L"a", 0); - if (xmlA != NULL) - { + if (xmlA != NULL) { szText += T2Utf(xmlGetAttrValue(xmlA, L"href")); } xmlDestroyNode(xml); } - else - { + else { szText = INVALID_DATA; } } diff --git a/protocols/SkypeWeb/src/skype_files.cpp b/protocols/SkypeWeb/src/skype_files.cpp index aa26123f46..17efd46bc0 100644 --- a/protocols/SkypeWeb/src/skype_files.cpp +++ b/protocols/SkypeWeb/src/skype_files.cpp @@ -4,8 +4,7 @@ HANDLE CSkypeProto::SendFile(MCONTACT hContact, const wchar_t *szDescription, wchar_t **ppszFiles) { - if (IsOnline()) - { + if (IsOnline()) { CFileUploadParam *fup = new CFileUploadParam(hContact, szDescription, ppszFiles); ForkThread(&CSkypeProto::SendFileThread, (void*)fup); return (HANDLE)fup; @@ -33,8 +32,7 @@ void CSkypeProto::SendFileThread(void *p) void CSkypeProto::OnASMObjectCreated(const NETLIBHTTPREQUEST *response, void *arg) { CFileUploadParam *fup = (CFileUploadParam*)arg; - if (response && response->pData) - { + if (response && response->pData) { JSONNode node = JSONNode::parse((char*)response->pData); std::string strObjectId = node["id"].as_string(); fup->uid = mir_strdup(strObjectId.c_str()); @@ -44,13 +42,13 @@ void CSkypeProto::OnASMObjectCreated(const NETLIBHTTPREQUEST *response, void *ar fseek(pFile, 0, SEEK_END); long lFileLen = ftell(pFile); - if(lFileLen < 1) { + if (lFileLen < 1) { fclose(pFile); return; } fseek(pFile, 0, SEEK_SET); - + mir_ptr pData((BYTE*)mir_alloc(lFileLen)); long lBytes = (long)fread(pData, sizeof(BYTE), lFileLen, pFile); @@ -69,8 +67,7 @@ void CSkypeProto::OnASMObjectCreated(const NETLIBHTTPREQUEST *response, void *ar void CSkypeProto::OnASMObjectUploaded(const NETLIBHTTPREQUEST *response, void *arg) { CFileUploadParam *fup = (CFileUploadParam*)arg; - if (response == nullptr) - { + if (response == nullptr) { FILETRANSFER_FAILED(fup); return; } @@ -86,7 +83,7 @@ void CSkypeProto::OnASMObjectUploaded(const NETLIBHTTPREQUEST *response, void *a xmlAddAttr(xmlOrigName, L"v", tszFile); HXML xmlSize = xmlAddChild(xml, L"FileSize", nullptr); xmlAddAttr(xmlSize, L"v", CMStringW(FORMAT, L"%d", fup->size)); - + xmlAddAttr(xml, L"Type", L"File.1"); xmlAddAttr(xml, L"uri", CMStringW(FORMAT, L"https://api.asm.skype.com/v1/objects/%s", _A2T(fup->uid))); xmlAddAttr(xml, L"url_thumbnail", CMStringW(FORMAT, L"https://api.asm.skype.com/v1/objects/%s/views/thumbnail", _A2T(fup->uid))); @@ -95,4 +92,4 @@ void CSkypeProto::OnASMObjectUploaded(const NETLIBHTTPREQUEST *response, void *a xmlDestroyNode(xml); ProtoBroadcastAck(fup->hContact, ACKTYPE_FILE, ACKRESULT_SUCCESS, (HANDLE)fup); delete fup; -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_history_sync.cpp b/protocols/SkypeWeb/src/skype_history_sync.cpp index 0baf127e7b..c7d10ef54b 100644 --- a/protocols/SkypeWeb/src/skype_history_sync.cpp +++ b/protocols/SkypeWeb/src/skype_history_sync.cpp @@ -39,8 +39,7 @@ void CSkypeProto::OnGetServerHistory(const NETLIBHTTPREQUEST *response) if (totalCount >= 99 || conversations.size() >= 99) PushRequest(new GetHistoryOnUrlRequest(syncState.c_str(), li), &CSkypeProto::OnGetServerHistory); - for (int i = (int)conversations.size(); i >= 0; i--) - { + for (int i = (int)conversations.size(); i >= 0; i--) { const JSONNode &message = conversations.at(i); CMStringA szMessageId = message["clientmessageid"] ? message["clientmessageid"].as_string().c_str() : message["skypeeditedid"].as_string().c_str(); @@ -56,7 +55,7 @@ void CSkypeProto::OnGetServerHistory(const NETLIBHTTPREQUEST *response) bool isEdited = message["skypeeditedid"]; MCONTACT hContact = FindContact(UrlToSkypename(conversationLink.c_str())); - + if (timestamp > db_get_dw(hContact, m_szModuleName, "LastMsgTime", 0)) db_set_dw(hContact, m_szModuleName, "LastMsgTime", (DWORD)timestamp); @@ -68,46 +67,36 @@ void CSkypeProto::OnGetServerHistory(const NETLIBHTTPREQUEST *response) if (IsMe(skypename)) iFlags |= DBEF_SENT; - if (strstr(conversationLink.c_str(), "/8:")) - { - if (messageType == "Text" || messageType == "RichText") - { + if (strstr(conversationLink.c_str(), "/8:")) { + if (messageType == "Text" || messageType == "RichText") { ptrA szMessage(messageType == "RichText" ? RemoveHtml(content.c_str()) : mir_strdup(content.c_str())); MEVENT dbevent = GetMessageFromDb(hContact, szMessageId); - if (isEdited && dbevent != NULL) - { + if (isEdited && dbevent != NULL) { AppendDBEvent(hContact, dbevent, szMessage, szMessageId, timestamp); } else AddDbEvent(emoteOffset == 0 ? EVENTTYPE_MESSAGE : SKYPE_DB_EVENT_TYPE_ACTION, hContact, timestamp, iFlags, &szMessage[emoteOffset], szMessageId); } - else if (messageType == "Event/Call") - { + else if (messageType == "Event/Call") { AddDbEvent(SKYPE_DB_EVENT_TYPE_CALL_INFO, hContact, timestamp, iFlags, content.c_str(), szMessageId); } - else if (messageType == "RichText/Files") - { + else if (messageType == "RichText/Files") { AddDbEvent(SKYPE_DB_EVENT_TYPE_FILETRANSFER_INFO, hContact, timestamp, iFlags, content.c_str(), szMessageId); } - else if (messageType == "RichText/UriObject") - { + else if (messageType == "RichText/UriObject") { AddDbEvent(SKYPE_DB_EVENT_TYPE_URIOBJ, hContact, timestamp, iFlags, content.c_str(), szMessageId); } - else if (messageType == "RichText/Contacts") - { + else if (messageType == "RichText/Contacts") { ProcessContactRecv(hContact, timestamp, content.c_str(), szMessageId); } - else - { + else { AddDbEvent(SKYPE_DB_EVENT_TYPE_UNKNOWN, hContact, timestamp, iFlags, content.c_str(), szMessageId); } } - else if (conversationLink.find("/19:") != -1) - { + else if (conversationLink.find("/19:") != -1) { CMStringA chatname(UrlToSkypename(conversationLink.c_str())); ptrA szMessage(messageType == "RichText" ? RemoveHtml(content.c_str()) : mir_strdup(content.c_str())); - if (messageType == "Text" || messageType == "RichText") - { + if (messageType == "Text" || messageType == "RichText") { AddMessageToChat(_A2T(chatname), _A2T(skypename), szMessage, emoteOffset != NULL, emoteOffset, timestamp, true); } } @@ -138,24 +127,19 @@ void CSkypeProto::OnSyncHistory(const NETLIBHTTPREQUEST *response) if (totalCount >= 99 || conversations.size() >= 99) PushRequest(new SyncHistoryFirstRequest(syncState.c_str(), li), &CSkypeProto::OnSyncHistory); - for (size_t i = 0; i < conversations.size(); i++) - { + for (size_t i = 0; i < conversations.size(); i++) { const JSONNode &conversation = conversations.at(i); const JSONNode &lastMessage = conversation["lastMessage"]; - if (lastMessage) - { + if (lastMessage) { std::string strConversationLink = lastMessage["conversationLink"].as_string(); - if (strConversationLink.find("/8:") != -1) - { + if (strConversationLink.find("/8:") != -1) { CMStringA szSkypename = UrlToSkypename(strConversationLink.c_str()); time_t composeTime(IsoToUnixTime(lastMessage["composetime"].as_string().c_str())); MCONTACT hContact = FindContact(szSkypename); - if (hContact != NULL) - { - if (getDword(hContact, "LastMsgTime", 0) < composeTime) - { + if (hContact != NULL) { + if (getDword(hContact, "LastMsgTime", 0) < composeTime) { PushRequest(new GetHistoryRequest(szSkypename, 100, false, 0, li), &CSkypeProto::OnGetServerHistory); } } @@ -164,4 +148,4 @@ void CSkypeProto::OnSyncHistory(const NETLIBHTTPREQUEST *response) } m_bHistorySynced = true; -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_login.cpp b/protocols/SkypeWeb/src/skype_login.cpp index 98ccf8b66c..b49ed92647 100644 --- a/protocols/SkypeWeb/src/skype_login.cpp +++ b/protocols/SkypeWeb/src/skype_login.cpp @@ -29,21 +29,15 @@ void CSkypeProto::Login() li.szSkypename = getStringA(SKYPE_SETTINGS_ID); pass_ptrA szPassword(getStringA(SKYPE_SETTINGS_PASSWORD)); - if (li.szSkypename == NULL || szPassword == NULL) - { + if (li.szSkypename.IsEmpty() || szPassword == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); return; - } + } + m_bHistorySynced = m_bThreadsTerminated = false; if ((tokenExpires - 1800) > time(NULL)) OnLoginSuccess(); - /*else - { - if (strchr(li.szSkypename, '@')) - SendRequest(new LoginMSRequest(), &CSkypeProto::OnMSLoginFirst); - else - SendRequest(new LoginOAuthRequest((char*)li.szSkypename, szPassword), &CSkypeProto::OnLoginOAuth); - }*/ + PushRequest(new OAuthRequest(), &CSkypeProto::OnOAuthStart); } @@ -51,54 +45,43 @@ void CSkypeProto::OnLoginOAuth(const NETLIBHTTPREQUEST *response) { if (!IsStatusConnecting(m_iStatus)) return; - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } JSONNode json = JSONNode::parse(response->pData); - if (!json) - { + if (!json) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } - if (response->resultCode != 200) - { + if (response->resultCode != 200) { int error = 0; - if (json["status"]) - { + if (json["status"]) { const JSONNode &status = json["status"]; - if (status["code"]) - { - switch(status["code"].as_int()) - { + if (status["code"]) { + switch (status["code"].as_int()) { case 40002: - { - ShowNotification(L"Skype", TranslateT("Authentication failed. Invalid username."), NULL, 1); - error = LOGINERR_BADUSERID; - break; - } + ShowNotification(L"Skype", TranslateT("Authentication failed. Invalid username."), NULL, 1); + error = LOGINERR_BADUSERID; + break; + case 40120: - { - ShowNotification(L"Skype", TranslateT("Authentication failed. Bad username or password."), NULL, 1); - error = LOGINERR_WRONGPASSWORD; - break; - } + ShowNotification(L"Skype", TranslateT("Authentication failed. Bad username or password."), NULL, 1); + error = LOGINERR_WRONGPASSWORD; + break; + case 40121: - { - ShowNotification(L"Skype", TranslateT("Too many failed authentication attempts with given username or IP."), NULL, 1); - error = LOGIN_ERROR_TOOMANY_REQUESTS; - break; - } - default: - { - ShowNotification(L"Skype", status["text"] ? status["text"].as_mstring() : TranslateT("Authentication failed. Unknown error."), NULL, 1); - error = LOGIN_ERROR_UNKNOWN; - } + ShowNotification(L"Skype", TranslateT("Too many failed authentication attempts with given username or IP."), NULL, 1); + error = LOGIN_ERROR_TOOMANY_REQUESTS; + break; + + default: + ShowNotification(L"Skype", status["text"] ? status["text"].as_mstring() : TranslateT("Authentication failed. Unknown error."), NULL, 1); + error = LOGIN_ERROR_UNKNOWN; } } } @@ -108,8 +91,7 @@ void CSkypeProto::OnLoginOAuth(const NETLIBHTTPREQUEST *response) return; } - if (!json["skypetoken"] || !json["expiresIn"]) - { + if (!json["skypetoken"] || !json["expiresIn"]) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -120,9 +102,11 @@ void CSkypeProto::OnLoginOAuth(const NETLIBHTTPREQUEST *response) OnLoginSuccess(); } + void CSkypeProto::OnLoginSuccess() { - if (!IsStatusConnecting(m_iStatus)) return; + if (!IsStatusConnecting(m_iStatus)) + return; m_bThreadsTerminated = false; ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_SUCCESS, NULL, 0); @@ -140,22 +124,18 @@ void CSkypeProto::OnEndpointCreated(const NETLIBHTTPREQUEST *response) m_iStatus++; - if (response == NULL) - { + if (response == NULL) { debugLogA(__FUNCTION__ ": failed to get create endpoint"); ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } - for (int i = 0; i < response->headersCount; i++) - { - if (!mir_strcmpi(response->headers[i].szName, "Set-RegistrationToken")) - { + for (int i = 0; i < response->headersCount; i++) { + if (!mir_strcmpi(response->headers[i].szName, "Set-RegistrationToken")) { CMStringA szValue = response->headers[i].szValue, szCookieName, szCookieVal; int iStart = 0; - while (true) - { + while (true) { CMStringA szToken = szValue.Tokenize(";", iStart).Trim(); if (iStart == -1) break; @@ -168,58 +148,48 @@ void CSkypeProto::OnEndpointCreated(const NETLIBHTTPREQUEST *response) li.endpoint.szToken = szCookieVal.Detach(); else if (szCookieName == "endpointId") li.endpoint.szId = szCookieVal.Detach(); - } } - else if (!mir_strcmpi(response->headers[i].szName, "Location")) - { + else if (!mir_strcmpi(response->headers[i].szName, "Location")) { CMStringA szValue = response->headers[i].szValue; li.endpoint.szServer = GetServerFromUrl(szValue).Detach(); setString("Server", li.endpoint.szServer); } - } - if (m_iStatus++ > SKYPE_MAX_CONNECT_RETRIES) - { + if (m_iStatus++ > SKYPE_MAX_CONNECT_RETRIES) { debugLogA(__FUNCTION__ ": failed to create endpoint (too many connect retries)"); ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } - if (response->resultCode != 201) - { - if (response->resultCode == 401) - { + if (response->resultCode != 201) { + if (response->resultCode == 401) { delSetting("TokenExpiresIn"); - SendRequest(new LoginOAuthRequest((char*)li.szSkypename, pass_ptrA(getStringA(SKYPE_SETTINGS_PASSWORD))), &CSkypeProto::OnLoginOAuth); + SendRequest(new LoginOAuthRequest(li.szSkypename, pass_ptrA(getStringA(SKYPE_SETTINGS_PASSWORD))), &CSkypeProto::OnLoginOAuth); return; } - else if (response->resultCode == 400) - { + if (response->resultCode == 400) { delSetting("TokenExpiresIn"); ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } - else //it should be rewritten - { - SendRequest(new CreateEndpointRequest(li), &CSkypeProto::OnEndpointCreated); - return; - } + // it should be rewritten + SendRequest(new CreateEndpointRequest(li), &CSkypeProto::OnEndpointCreated); + return; } - SendRequest(new CreateSubscriptionsRequest(li), &CSkypeProto::OnSubscriptionsCreated); } void CSkypeProto::OnSubscriptionsCreated(const NETLIBHTTPREQUEST *response) { - if (!IsStatusConnecting(m_iStatus)) return; + if (!IsStatusConnecting(m_iStatus)) + return; - if (response == NULL) - { + if (response == NULL) { debugLogA(__FUNCTION__ ": failed to create subscription"); ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); @@ -235,8 +205,7 @@ void CSkypeProto::SendPresence(bool isLogin) if (!m_opts.bUseHostnameAsPlace && m_opts.wstrPlace && *m_opts.wstrPlace) epname = mir_utf8encodeW(m_opts.wstrPlace); - else - { + else { wchar_t compName[MAX_COMPUTERNAME_LENGTH + 1]; DWORD size = _countof(compName); GetComputerName(compName, &size); @@ -245,16 +214,16 @@ void CSkypeProto::SendPresence(bool isLogin) if (isLogin) SendRequest(new SendCapabilitiesRequest(epname, li), &CSkypeProto::OnCapabilitiesSended); - else + else PushRequest(new SendCapabilitiesRequest(epname, li)); } void CSkypeProto::OnCapabilitiesSended(const NETLIBHTTPREQUEST *response) { - if (!IsStatusConnecting(m_iStatus)) return; + if (!IsStatusConnecting(m_iStatus)) + return; - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -264,10 +233,9 @@ void CSkypeProto::OnCapabilitiesSended(const NETLIBHTTPREQUEST *response) LIST skypenames(1); for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) - { if (!isChatRoom(hContact)) skypenames.insert(getStringA(hContact, SKYPE_SETTINGS_ID)); - } + SendRequest(new CreateContactsSubscriptionRequest(skypenames, li)); FreeList(skypenames); skypenames.destroy(); @@ -278,7 +246,7 @@ void CSkypeProto::OnCapabilitiesSended(const NETLIBHTTPREQUEST *response) SendRequest(new CreateTrouterRequest(), &CSkypeProto::OnCreateTrouter); PushRequest(new GetContactListRequest(li, NULL), &CSkypeProto::LoadContactList); PushRequest(new GetAvatarRequest(ptrA(getStringA("AvatarUrl"))), &CSkypeProto::OnReceiveAvatar, NULL); - + if (m_opts.bAutoHistorySync) PushRequest(new SyncHistoryFirstRequest(100, li), &CSkypeProto::OnSyncHistory); @@ -291,8 +259,7 @@ void CSkypeProto::OnCapabilitiesSended(const NETLIBHTTPREQUEST *response) void CSkypeProto::OnStatusChanged(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { debugLogA(__FUNCTION__ ": failed to change status"); ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); @@ -300,8 +267,7 @@ void CSkypeProto::OnStatusChanged(const NETLIBHTTPREQUEST *response) } JSONNode json = JSONNode::parse(response->pData); - if (!json) - { + if (!json) { debugLogA(__FUNCTION__ ": failed to change status"); ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); @@ -315,8 +281,7 @@ void CSkypeProto::OnStatusChanged(const NETLIBHTTPREQUEST *response) } int iNewStatus = SkypeToMirandaStatus(nStatus.as_string().c_str()); - if (iNewStatus == ID_STATUS_OFFLINE) - { + if (iNewStatus == ID_STATUS_OFFLINE) { debugLogA(__FUNCTION__ ": failed to change status"); ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); diff --git a/protocols/SkypeWeb/src/skype_menus.cpp b/protocols/SkypeWeb/src/skype_menus.cpp index c9c12d6553..f603d9e2ec 100644 --- a/protocols/SkypeWeb/src/skype_menus.cpp +++ b/protocols/SkypeWeb/src/skype_menus.cpp @@ -28,9 +28,7 @@ int CSkypeProto::OnPrebuildContactMenu(WPARAM hContact, LPARAM) return 0; if (isChatRoom(hContact)) - { return 0; - } bool isCtrlPressed = (GetKeyState(VK_CONTROL) & 0x8000) != 0; bool isAuthNeed = getByte(hContact, "Auth", 0) > 0; @@ -42,7 +40,6 @@ int CSkypeProto::OnPrebuildContactMenu(WPARAM hContact, LPARAM) Menu_ShowItem(ContactMenuItems[CMI_BLOCK], true); Menu_ShowItem(ContactMenuItems[CMI_UNBLOCK], isCtrlPressed || isBlocked); Menu_ShowItem(ContactMenuItems[CMI_GETSERVERHISTORY], true); - return 0; } @@ -93,7 +90,7 @@ void CSkypeProto::InitMenus() mi.name.w = LPGENW("Block contact"); mi.position = CMI_POSITION + CMI_BLOCK; mi.hIcolibItem = GetIconHandle(IDI_BLOCKUSER); - SET_UID(mi ,0xc6169b8f, 0x53ab, 0x4242, 0xbe, 0x90, 0xe2, 0x4a, 0xa5, 0x73, 0x88, 0x32); + SET_UID(mi, 0xc6169b8f, 0x53ab, 0x4242, 0xbe, 0x90, 0xe2, 0x4a, 0xa5, 0x73, 0x88, 0x32); ContactMenuItems[CMI_BLOCK] = Menu_AddContactMenuItem(&mi); CreateServiceFunction(mi.pszService, GlobalService<&CSkypeProto::BlockContact>); @@ -118,4 +115,4 @@ int CSkypeProto::OnInitStatusMenu() mi.hIcolibItem = GetIconHandle(IDI_CONFERENCE); Menu_AddProtoMenuItem(&mi, m_szModuleName); return 0; -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_messages.cpp b/protocols/SkypeWeb/src/skype_messages.cpp index 62beabe57d..25cdb67cf9 100644 --- a/protocols/SkypeWeb/src/skype_messages.cpp +++ b/protocols/SkypeWeb/src/skype_messages.cpp @@ -20,7 +20,7 @@ along with this program. If not, see . /* MESSAGE RECEIVING */ // incoming message flow -int CSkypeProto::OnReceiveMessage(MCONTACT hContact, const char *szContent, const char *szMessageId, time_t timestamp, int emoteOffset, bool isRead) +int CSkypeProto::OnReceiveMessage(MCONTACT hContact, const char *szContent, const char *szMessageId, time_t timestamp, int emoteOffset, bool isRead) { PROTORECVEVENT recv = { 0 }; recv.timestamp = timestamp; @@ -45,8 +45,7 @@ struct SendMessageParam // outcoming message flow int CSkypeProto::OnSendMessage(MCONTACT hContact, int, const char *szMessage) { - if (!IsOnline()) - { + if (!IsOnline()) { ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_FAILED, NULL, (LPARAM)Translate("You cannot send when you are offline.")); return 0; } @@ -76,17 +75,12 @@ void CSkypeProto::OnMessageSent(const NETLIBHTTPREQUEST *response, void *arg) HANDLE hMessage = (HANDLE)param->hMessage; delete param; - if (response != NULL) - { - if (response->resultCode == 201) - { - if (m_OutMessages.getIndex(hMessage) != -1) - { - if (response->pData != NULL) - { + if (response != NULL) { + if (response->resultCode == 201) { + if (m_OutMessages.getIndex(hMessage) != -1) { + if (response->pData != NULL) { JSONNode jRoot = JSONNode::parse(response->pData); - if (m_mpOutMessages.find(hMessage) == m_mpOutMessages.end()) - { + if (m_mpOutMessages.find(hMessage) == m_mpOutMessages.end()) { m_mpOutMessages[hMessage] = std::stoull(jRoot["OriginalArrivalTime"].as_string()) / 1000; } } @@ -97,17 +91,14 @@ void CSkypeProto::OnMessageSent(const NETLIBHTTPREQUEST *response, void *arg) } } } - else - { + else { std::string strError = Translate("Unknown error!"); - if (response->pData != NULL) - { + if (response->pData != NULL) { JSONNode jRoot = JSONNode::parse(response->pData); const JSONNode &jErr = jRoot["errorCode"]; - if(jErr) - { + if (jErr) { strError = jErr.as_string(); } } @@ -115,8 +106,7 @@ void CSkypeProto::OnMessageSent(const NETLIBHTTPREQUEST *response, void *arg) ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_FAILED, hMessage, (LPARAM)strError.c_str()); } } - else - { + else { ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_FAILED, hMessage, (LPARAM)(Translate("Network error!"))); } } @@ -129,8 +119,7 @@ int CSkypeProto::OnPreCreateMessage(WPARAM, LPARAM lParam) return 0; char *message = (char*)evt->dbei->pBlob; - if (strncmp(message, "/me ", 4) == 0) - { + if (strncmp(message, "/me ", 4) == 0) { evt->dbei->cbBlob = evt->dbei->cbBlob - 4; memmove(evt->dbei->pBlob, &evt->dbei->pBlob[4], evt->dbei->cbBlob); evt->dbei->eventType = SKYPE_DB_EVENT_TYPE_ACTION; @@ -142,8 +131,7 @@ int CSkypeProto::OnPreCreateMessage(WPARAM, LPARAM lParam) evt->dbei->cbBlob += messageId.GetLength(); auto it = m_mpOutMessages.find((HANDLE)evt->seq); - if (it != m_mpOutMessages.end()) - { + if (it != m_mpOutMessages.end()) { evt->dbei->timestamp = it->second; m_mpOutMessages.erase(it); } @@ -164,7 +152,7 @@ void CSkypeProto::OnPrivateMessageEvent(const JSONNode &node) ptrA szClearedContent(strMessageType == "RichText" ? RemoveHtml(strContent.c_str()) : mir_strdup(strContent.c_str())); bool bEdited = node["skypeeditedid"]; - time_t timestamp = IsoToUnixTime(node["composetime"].as_string().c_str()); + time_t timestamp = IsoToUnixTime(node["composetime"].as_string().c_str()); int nEmoteOffset = atoi(node["skypeemoteoffset"].as_string().c_str()); @@ -173,24 +161,18 @@ void CSkypeProto::OnPrivateMessageEvent(const JSONNode &node) if (m_bHistorySynced) db_set_dw(hContact, m_szModuleName, "LastMsgTime", (DWORD)timestamp); - if (strMessageType == "Control/Typing") - { + if (strMessageType == "Control/Typing") { CallService(MS_PROTO_CONTACTISTYPING, hContact, PROTOTYPE_CONTACTTYPING_INFINITE); } - else if (strMessageType == "Control/ClearTyping") - { + else if (strMessageType == "Control/ClearTyping") { CallService(MS_PROTO_CONTACTISTYPING, hContact, PROTOTYPE_CONTACTTYPING_OFF); } - else if (strMessageType == "Text" || strMessageType == "RichText") - { - if (IsMe(szFromSkypename)) - { + else if (strMessageType == "Text" || strMessageType == "RichText") { + if (IsMe(szFromSkypename)) { HANDLE hMessage = (HANDLE)(std::stoull(szMessageId.GetString())); - if (m_OutMessages.getIndex(hMessage) != -1) - { + if (m_OutMessages.getIndex(hMessage) != -1) { auto it = m_mpOutMessages.find(hMessage); - if (it == m_mpOutMessages.end()) - { + if (it == m_mpOutMessages.end()) { m_mpOutMessages[hMessage] = timestamp; } ProtoBroadcastAck(hContact, ACKTYPE_MESSAGE, ACKRESULT_SUCCESS, hMessage, 0); @@ -199,55 +181,44 @@ void CSkypeProto::OnPrivateMessageEvent(const JSONNode &node) m_OutMessages.remove(hMessage); } } - else - { - AddDbEvent(nEmoteOffset == 0 ? EVENTTYPE_MESSAGE : SKYPE_DB_EVENT_TYPE_ACTION, hContact, + else { + AddDbEvent(nEmoteOffset == 0 ? EVENTTYPE_MESSAGE : SKYPE_DB_EVENT_TYPE_ACTION, hContact, timestamp, DBEF_UTF | DBEF_SENT, &szClearedContent[nEmoteOffset], szMessageId); } } - else - { + else { CallService(MS_PROTO_CONTACTISTYPING, hContact, PROTOTYPE_CONTACTTYPING_OFF); MEVENT hDbEvent = GetMessageFromDb(hContact, szMessageId); - if (bEdited && hDbEvent != NULL) - { + if (bEdited && hDbEvent != NULL) { AppendDBEvent(hContact, hDbEvent, szClearedContent, szMessageId, timestamp); } - else - { + else { OnReceiveMessage(hContact, szClearedContent, szMessageId, timestamp, nEmoteOffset); } } } - else if (strMessageType == "Event/Call") - { + else if (strMessageType == "Event/Call") { AddDbEvent(SKYPE_DB_EVENT_TYPE_CALL_INFO, hContact, timestamp, DBEF_UTF, strContent.c_str(), szMessageId); } - else if (strMessageType == "RichText/Files") - { + else if (strMessageType == "RichText/Files") { AddDbEvent(SKYPE_DB_EVENT_TYPE_FILETRANSFER_INFO, hContact, timestamp, DBEF_UTF, strContent.c_str(), szMessageId); } - else if (strMessageType == "RichText/UriObject") - { + else if (strMessageType == "RichText/UriObject") { AddDbEvent(SKYPE_DB_EVENT_TYPE_URIOBJ, hContact, timestamp, DBEF_UTF, strContent.c_str(), szMessageId); } - else if (strMessageType == "RichText/Contacts") - { + else if (strMessageType == "RichText/Contacts") { ProcessContactRecv(hContact, timestamp, strContent.c_str(), szMessageId); } - else if (strMessageType == "RichText/Media_FlikMsg") - { + else if (strMessageType == "RichText/Media_FlikMsg") { AddDbEvent(SKYPE_DB_EVENT_TYPE_MOJI, hContact, timestamp, DBEF_UTF, strContent.c_str(), szMessageId); } - else if (strMessageType == "RichText/Media_GenericFile") - { + else if (strMessageType == "RichText/Media_GenericFile") { AddDbEvent(SKYPE_DB_EVENT_TYPE_FILE, hContact, timestamp, DBEF_UTF, strContent.c_str(), szMessageId); } //else if (messageType == "Event/SkypeVideoMessage") {} //else if (messageType.c_str() == "RichText/Location") {} - else - { + else { AddDbEvent(SKYPE_DB_EVENT_TYPE_UNKNOWN, hContact, timestamp, DBEF_UTF, strContent.c_str(), szMessageId); } } @@ -262,12 +233,12 @@ int CSkypeProto::OnDbEventRead(WPARAM hContact, LPARAM hDbEvent) void CSkypeProto::MarkMessagesRead(MCONTACT hContact, MEVENT hDbEvent) { debugLogA(__FUNCTION__); - + DBEVENTINFO dbei = {}; db_event_get(hDbEvent, &dbei); time_t timestamp = dbei.timestamp; - if(db_get_dw(hContact, m_szModuleName, "LastMsgTime", 0) > (timestamp - 300)) + if (db_get_dw(hContact, m_szModuleName, "LastMsgTime", 0) > (timestamp - 300)) PushRequest(new MarkMessageReadRequest(Contacts[hContact], timestamp, timestamp, false, li)); } @@ -275,20 +246,17 @@ void CSkypeProto::MarkMessagesRead(MCONTACT hContact, MEVENT hDbEvent) void CSkypeProto::ProcessContactRecv(MCONTACT hContact, time_t timestamp, const char *szContent, const char *szMessageId) { HXML xmlNode = xmlParseString(mir_utf8decodeW(szContent), 0, L"contacts"); - if (xmlNode) - { + if (xmlNode) { int nCount = 0; PROTOSEARCHRESULT **psr; - for (int i = 0; i < xmlGetChildCount(xmlNode); i++) nCount++; + for (int i = 0; i < xmlGetChildCount(xmlNode); i++) + nCount++; - if (psr = (PROTOSEARCHRESULT**)mir_calloc(sizeof(PROTOSEARCHRESULT*) * nCount)) - { + if (psr = (PROTOSEARCHRESULT**)mir_calloc(sizeof(PROTOSEARCHRESULT*) * nCount)) { nCount = 0; - for (int i = 0; i < xmlGetChildCount(xmlNode); i++) - { + for (int i = 0; i < xmlGetChildCount(xmlNode); i++) { HXML xmlContact = xmlGetNthChild(xmlNode, L"c", i); - if (xmlContact != NULL) - { + if (xmlContact != NULL) { const wchar_t *tszContactId = xmlGetAttrValue(xmlContact, L"s"); //const wchar_t *tszContactName = xmlGetAttrValue(xmlContact, L"f"); @@ -300,8 +268,7 @@ void CSkypeProto::ProcessContactRecv(MCONTACT hContact, time_t timestamp, const nCount++; } } - if (nCount) - { + if (nCount) { PROTORECVEVENT pre = { 0 }; pre.timestamp = (DWORD)timestamp; pre.szMessage = (char*)psr; @@ -316,8 +283,7 @@ void CSkypeProto::ProcessContactRecv(MCONTACT hContact, time_t timestamp, const pre.lParam = (LPARAM)b; ProtoChainRecv(hContact, PSR_CONTACTS, 0, (LPARAM)&pre); - for (DWORD i = 0; i < *((PDWORD)b); i++) - { + for (DWORD i = 0; i < *((PDWORD)b); i++) { mir_free(psr[i]->id.w); mir_free(psr[i]); } @@ -326,4 +292,4 @@ void CSkypeProto::ProcessContactRecv(MCONTACT hContact, time_t timestamp, const mir_free(psr); } } -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_mslogin.cpp b/protocols/SkypeWeb/src/skype_mslogin.cpp index 9f8a7e0f26..c0bf3036b8 100644 --- a/protocols/SkypeWeb/src/skype_mslogin.cpp +++ b/protocols/SkypeWeb/src/skype_mslogin.cpp @@ -19,8 +19,7 @@ along with this program. If not, see . void CSkypeProto::OnMSLoginFirst(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -33,16 +32,14 @@ void CSkypeProto::OnMSLoginFirst(const NETLIBHTTPREQUEST *response) regex = ""; - if (!std::regex_search(content, match, regex)) - { + if (!std::regex_search(content, match, regex)) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } std::string PPTF = match[1]; - - for (int i = 0; i < response->headersCount; i++) - { + + for (int i = 0; i < response->headersCount; i++) { if (mir_strcmpi(response->headers[i].szName, "Set-Cookie")) continue; @@ -54,13 +51,12 @@ void CSkypeProto::OnMSLoginFirst(const NETLIBHTTPREQUEST *response) CMStringA mscookies(FORMAT, "MSPRequ=%s;MSPOK=%s;CkTst=G%lld;", scookies["MSPRequ"].c_str(), scookies["MSPOK"].c_str(), time(NULL)); - SendRequest (new LoginMSRequest(ptrA(getStringA(SKYPE_SETTINGS_ID)), ptrA(getStringA(SKYPE_SETTINGS_PASSWORD)), mscookies.c_str(), PPTF.c_str()), &CSkypeProto::OnMSLoginSecond); + SendRequest(new LoginMSRequest(ptrA(getStringA(SKYPE_SETTINGS_ID)), ptrA(getStringA(SKYPE_SETTINGS_PASSWORD)), mscookies.c_str(), PPTF.c_str()), &CSkypeProto::OnMSLoginSecond); } void CSkypeProto::OnMSLoginSecond(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -72,13 +68,10 @@ void CSkypeProto::OnMSLoginSecond(const NETLIBHTTPREQUEST *response) ptrA szContent(response->pData); regex = ""; - if (std::regex_search(content, match, regex)) - { - if (match[1] == "i5600") - { + if (std::regex_search(content, match, regex)) { + if (match[1] == "i5600") { CMStringA szCookies; - for (int i = 0; i < response->headersCount; i++) - { + for (int i = 0; i < response->headersCount; i++) { if (mir_strcmpi(response->headers[i].szName, "Set-Cookie")) continue; @@ -91,7 +84,7 @@ void CSkypeProto::OnMSLoginSecond(const NETLIBHTTPREQUEST *response) CMStringA url(GetStringChunk(szContent, "urlPost:'", "'")); CMStringA ppft(GetStringChunk(szContent, "sFT:'", "'")); - + ptrA code(mir_utf8encodeW(RunConfirmationCode())); @@ -100,11 +93,8 @@ void CSkypeProto::OnMSLoginSecond(const NETLIBHTTPREQUEST *response) } } - regex = ""; - - if (!std::regex_search(content, match, regex)) - { + if (!std::regex_search(content, match, regex)) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -116,8 +106,7 @@ void CSkypeProto::OnMSLoginSecond(const NETLIBHTTPREQUEST *response) void CSkypeProto::OnMSLoginThird(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -129,8 +118,7 @@ void CSkypeProto::OnMSLoginThird(const NETLIBHTTPREQUEST *response) regex = ""; - if (!std::regex_search(content, match, regex)) - { + if (!std::regex_search(content, match, regex)) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -142,8 +130,7 @@ void CSkypeProto::OnMSLoginThird(const NETLIBHTTPREQUEST *response) void CSkypeProto::OnMSLoginEnd(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -153,19 +140,17 @@ void CSkypeProto::OnMSLoginEnd(const NETLIBHTTPREQUEST *response) std::smatch match; std::string content = response->pData; - regex = ""; - if (!std::regex_search(content, match, regex)) - { + regex = ""; + if (!std::regex_search(content, match, regex)) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } std::string token = match[1]; - setString("TokenSecret", token.c_str()); - regex = ""; + setString("TokenSecret", token.c_str()); + regex = ""; - if (std::regex_search(content, match, regex)) - { + if (std::regex_search(content, match, regex)) { std::string expiresIn = match[1]; int seconds = atoi(expiresIn.c_str()); setDword("TokenExpiresIn", time(NULL) + seconds); @@ -183,4 +168,4 @@ CMStringW CSkypeProto::RunConfirmationCode() pForm.ptszInitVal = NULL; pForm.szModuleName = m_szModuleName; return (!EnterString(&pForm)) ? CMStringW() : CMStringW(ptrW(pForm.ptszResult)); -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_oauth.cpp b/protocols/SkypeWeb/src/skype_oauth.cpp index f09a5674bb..17d6455a82 100644 --- a/protocols/SkypeWeb/src/skype_oauth.cpp +++ b/protocols/SkypeWeb/src/skype_oauth.cpp @@ -19,8 +19,7 @@ along with this program. If not, see . void CSkypeProto::OnOAuthStart(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -33,16 +32,14 @@ void CSkypeProto::OnOAuthStart(const NETLIBHTTPREQUEST *response) regex = ""; - if (!std::regex_search(content, match, regex)) - { + if (!std::regex_search(content, match, regex)) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } std::string PPTF = match[1]; - - for (int i = 0; i < response->headersCount; i++) - { + + for (int i = 0; i < response->headersCount; i++) { if (mir_strcmpi(response->headers[i].szName, "Set-Cookie")) continue; @@ -61,8 +58,7 @@ void CSkypeProto::OnOAuthStart(const NETLIBHTTPREQUEST *response) void CSkypeProto::OnOAuthAuthorize(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -73,8 +69,7 @@ void CSkypeProto::OnOAuthAuthorize(const NETLIBHTTPREQUEST *response) std::string content = response->pData; regex = ""; - if (!std::regex_search(content, match, regex)) - { + if (!std::regex_search(content, match, regex)) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -86,8 +81,7 @@ void CSkypeProto::OnOAuthAuthorize(const NETLIBHTTPREQUEST *response) void CSkypeProto::OnOAuthEnd(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; @@ -97,23 +91,21 @@ void CSkypeProto::OnOAuthEnd(const NETLIBHTTPREQUEST *response) std::smatch match; std::string content = response->pData; - regex = ""; - if (!std::regex_search(content, match, regex)) - { + regex = ""; + if (!std::regex_search(content, match, regex)) { ProtoBroadcastAck(NULL, ACKTYPE_LOGIN, ACKRESULT_FAILED, NULL, LOGIN_ERROR_UNKNOWN); SetStatus(ID_STATUS_OFFLINE); return; } std::string token = match[1]; - setString("TokenSecret", token.c_str()); - regex = ""; + setString("TokenSecret", token.c_str()); + regex = ""; - if (std::regex_search(content, match, regex)) - { + if (std::regex_search(content, match, regex)) { std::string expiresIn = match[1]; int seconds = atoi(expiresIn.c_str()); setDword("TokenExpiresIn", time(NULL) + seconds); } OnLoginSuccess(); -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_options.cpp b/protocols/SkypeWeb/src/skype_options.cpp index a754ca76b2..6dbb16d822 100644 --- a/protocols/SkypeWeb/src/skype_options.cpp +++ b/protocols/SkypeWeb/src/skype_options.cpp @@ -18,7 +18,7 @@ along with this program. If not, see . #include "stdafx.h" CSkypeOptionsMain::CSkypeOptionsMain(CSkypeProto *proto, int idDialog) -: CSkypeDlgBase(proto, idDialog, false), + : CSkypeDlgBase(proto, idDialog, false), m_skypename(this, IDC_SKYPENAME), m_password(this, IDC_PASSWORD), m_group(this, IDC_GROUP), @@ -53,10 +53,10 @@ void CSkypeOptionsMain::OnInitDialog() void CSkypeOptionsMain::OnApply() { - ptrA szNewSkypename(m_skypename.GetTextA()), - szOldSkypename(m_proto->getStringA(SKYPE_SETTINGS_ID)); + ptrA szNewSkypename(m_skypename.GetTextA()), + szOldSkypename(m_proto->getStringA(SKYPE_SETTINGS_ID)); pass_ptrA szNewPassword(m_password.GetTextA()), - szOldPassword(m_proto->getStringA("Password")); + szOldPassword(m_proto->getStringA("Password")); if (mir_strcmpi(szNewSkypename, szOldSkypename) || mir_strcmp(szNewPassword, szOldPassword)) m_proto->delSetting("TokenExpiresIn"); m_proto->setString(SKYPE_SETTINGS_ID, szNewSkypename); diff --git a/protocols/SkypeWeb/src/skype_polling.cpp b/protocols/SkypeWeb/src/skype_polling.cpp index 459e45ebe8..1439d9f00f 100644 --- a/protocols/SkypeWeb/src/skype_polling.cpp +++ b/protocols/SkypeWeb/src/skype_polling.cpp @@ -22,56 +22,45 @@ void CSkypeProto::PollingThread(void*) debugLogA(__FUNCTION__ ": entering"); int nErrors = 0; - while (!m_bThreadsTerminated) - { + while (!m_bThreadsTerminated) { m_hPollingEvent.Wait(); nErrors = 0; PollRequest *request = new PollRequest(li); - while ((nErrors < POLLING_ERRORS_LIMIT) && m_iStatus != ID_STATUS_OFFLINE) - { + while ((nErrors < POLLING_ERRORS_LIMIT) && m_iStatus != ID_STATUS_OFFLINE) { request->nlc = m_pollingConnection; NLHR_PTR response(request->Send(m_hNetlibUser)); - if (response == NULL) - { + if (response == NULL) { nErrors++; m_pollingConnection = nullptr; continue; } - if (response->resultCode == 200) - { + if (response->resultCode == 200) { nErrors = 0; - if (response->pData) - { + if (response->pData) { char *pData = mir_strdup(response->pData); - if (pData != NULL) - { + if (pData != NULL) { ForkThread(&CSkypeProto::ParsePollData, pData); } - else - { + else { debugLogA(__FUNCTION__ ": memory overflow !!!"); break; } } } - else - { + else { nErrors++; - if (response->pData) - { + if (response->pData) { JSONNode root = JSONNode::parse(response->pData); const JSONNode &error = root["errorCode"]; - if (error != NULL) - { + if (error != NULL) { int errorCode = error.as_int(); - if (errorCode == 729) - { + if (errorCode == 729) { break; } } @@ -81,8 +70,7 @@ void CSkypeProto::PollingThread(void*) } delete request; - if (m_iStatus != ID_STATUS_OFFLINE) - { + if (m_iStatus != ID_STATUS_OFFLINE) { debugLogA(__FUNCTION__ ": unexpected termination; switching protocol to offline"); SetStatus(ID_STATUS_OFFLINE); } @@ -104,31 +92,25 @@ void CSkypeProto::ParsePollData(void *pData) const JSONNode &node = data["eventMessages"]; if (!node) return; - for (auto it = node.begin(); it != node.end(); ++it) - { + for (auto it = node.begin(); it != node.end(); ++it) { const JSONNode &message = *it; const JSONNode &resType = message["resourceType"]; const JSONNode &resource = message["resource"]; std::string resourceType = resType.as_string(); - if (resourceType == "NewMessage") - { + if (resourceType == "NewMessage") { ProcessNewMessage(resource); } - else if (resourceType == "UserPresence") - { + else if (resourceType == "UserPresence") { ProcessUserPresence(resource); } - else if (resourceType == "EndpointPresence") - { + else if (resourceType == "EndpointPresence") { ProcessEndpointPresence(resource); } - else if (resourceType == "ConversationUpdate") - { + else if (resourceType == "ConversationUpdate") { ProcessConversationUpdate(resource); } - else if (resourceType == "ThreadUpdate") - { + else if (resourceType == "ThreadUpdate") { ProcessThreadUpdate(resource); } } @@ -147,14 +129,12 @@ void CSkypeProto::ProcessEndpointPresence(const JSONNode &node) const JSONNode &publicInfo = node["publicInfo"]; const JSONNode &privateInfo = node["privateInfo"]; CMStringA MirVer; - if (publicInfo) - { + if (publicInfo) { std::string skypeNameVersion = publicInfo["skypeNameVersion"].as_string(); std::string version = publicInfo["version"].as_string(); std::string typ = publicInfo["typ"].as_string(); int iTyp = atoi(typ.c_str()); - switch (iTyp) - { + switch (iTyp) { case 0: case 1: MirVer.Append("Skype (Web) " + ParseUrl(version.c_str(), "/")); @@ -187,14 +167,12 @@ void CSkypeProto::ProcessEndpointPresence(const JSONNode &node) MirVer.AppendFormat("Miranda NG Skype %s", version.c_str()); break; default: - MirVer.Append("Skype (Unknown)"); + MirVer.Append("Skype (Unknown)"); } } - if (privateInfo != NULL) - { + if (privateInfo != NULL) { std::string epname = privateInfo["epname"].as_string(); - if (!epname.empty()) - { + if (!epname.empty()) { MirVer.AppendFormat(" [%s]", epname.c_str()); } } @@ -209,22 +187,17 @@ void CSkypeProto::ProcessUserPresence(const JSONNode &node) std::string status = node["status"].as_string(); CMStringA skypename = UrlToSkypename(selfLink.c_str()); - if (!skypename.IsEmpty()) - { - if (IsMe(skypename)) - { + if (!skypename.IsEmpty()) { + if (IsMe(skypename)) { int iNewStatus = SkypeToMirandaStatus(status.c_str()); if (iNewStatus == ID_STATUS_OFFLINE) return; int old_status = m_iStatus; m_iDesiredStatus = iNewStatus; m_iStatus = iNewStatus; if (old_status != iNewStatus) - { ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)old_status, iNewStatus); - } } - else - { + else { MCONTACT hContact = FindContact(skypename); if (hContact != NULL) SetContactStatus(hContact, SkypeToMirandaStatus(status.c_str())); @@ -244,5 +217,5 @@ void CSkypeProto::ProcessNewMessage(const JSONNode &node) OnChatEvent(node); } -void CSkypeProto::ProcessConversationUpdate(const JSONNode&){} -void CSkypeProto::ProcessThreadUpdate(const JSONNode&){} \ No newline at end of file +void CSkypeProto::ProcessConversationUpdate(const JSONNode&) {} +void CSkypeProto::ProcessThreadUpdate(const JSONNode&) {} \ No newline at end of file diff --git a/protocols/SkypeWeb/src/skype_popups.cpp b/protocols/SkypeWeb/src/skype_popups.cpp index d3ffa065b3..4babb8941c 100644 --- a/protocols/SkypeWeb/src/skype_popups.cpp +++ b/protocols/SkypeWeb/src/skype_popups.cpp @@ -42,9 +42,7 @@ void CSkypeProto::InitPopups() void CSkypeProto::UninitPopups() { for (int i = 0; i < m_PopupClasses.getCount(); i++) - { Popup_UnregisterClass(m_PopupClasses[i]); - } } void CSkypeProto::ShowNotification(const wchar_t *caption, const wchar_t *message, MCONTACT hContact, int type) @@ -55,23 +53,18 @@ void CSkypeProto::ShowNotification(const wchar_t *caption, const wchar_t *messag if (ServiceExists(MS_POPUP_ADDPOPUPCLASS)) { CMStringA className(FORMAT, "%s_", m_szModuleName); - switch (type) - { + switch (type) { case 1: - { - className.Append("Error"); - break; - } + className.Append("Error"); + break; + case SKYPE_DB_EVENT_TYPE_INCOMING_CALL: - { - className.Append("Call"); - break; - } + className.Append("Call"); + break; + default: - { - className.Append("Notification"); - break; - } + className.Append("Notification"); + break; } POPUPDATACLASS ppd = { sizeof(ppd) }; diff --git a/protocols/SkypeWeb/src/skype_profile.cpp b/protocols/SkypeWeb/src/skype_profile.cpp index 6b4e4892e9..b2dc58160d 100644 --- a/protocols/SkypeWeb/src/skype_profile.cpp +++ b/protocols/SkypeWeb/src/skype_profile.cpp @@ -274,7 +274,7 @@ void CSkypeProto::UpdateProfileDisplayName(const JSONNode &root, MCONTACT hConta else if (lastname) setWString(hContact, "Nick", lastname); else { - + const JSONNode &node = root["displayname"]; CMStringW displayname((!node) ? root["username"].as_mstring() : node.as_mstring()); if (!displayname.IsEmpty() && displayname != "null") @@ -296,16 +296,14 @@ void CSkypeProto::UpdateProfileGender(const JSONNode &root, MCONTACT hContact) void CSkypeProto::UpdateProfileBirthday(const JSONNode &root, MCONTACT hContact) { CMStringW birthday = root["birthday"].as_mstring(); - if (!birthday.IsEmpty() && birthday != "null") - { + if (!birthday.IsEmpty() && birthday != "null") { int d, m, y; swscanf(birthday.GetBuffer(), L"%d-%d-%d", &y, &m, &d); setWord(hContact, "BirthYear", y); setByte(hContact, "BirthDay", d); setByte(hContact, "BirthMonth", m); } - else - { + else { delSetting(hContact, "BirthYear"); delSetting(hContact, "BirthDay"); delSetting(hContact, "BirthMonth"); @@ -315,8 +313,7 @@ void CSkypeProto::UpdateProfileBirthday(const JSONNode &root, MCONTACT hContact) void CSkypeProto::UpdateProfileCountry(const JSONNode &root, MCONTACT hContact) { std::string isocode = root["country"].as_string(); - if (!isocode.empty() && isocode != "null") - { + if (!isocode.empty() && isocode != "null") { char *country = (char *)CallService(MS_UTILS_GETCOUNTRYBYISOCODE, (WPARAM)isocode.c_str(), 0); setString(hContact, "Country", country); } @@ -371,11 +368,9 @@ void CSkypeProto::UpdateProfileAbout(const JSONNode &root, MCONTACT hContact) void CSkypeProto::UpdateProfileEmails(const JSONNode &root, MCONTACT hContact) { const JSONNode &node = root["emails"]; - if (node) - { + if (node) { const JSONNode &items = node.as_array(); - for (size_t i = 0; i < min(items.size(), 3); i++) - { + for (size_t i = 0; i < min(items.size(), 3); i++) { const JSONNode &item = items.at(i); if (!item) break; @@ -384,8 +379,7 @@ void CSkypeProto::UpdateProfileEmails(const JSONNode &root, MCONTACT hContact) setWString(hContact, name, item.as_mstring()); } } - else - { + else { delSetting(hContact, "e-mail0"); delSetting(hContact, "e-mail1"); delSetting(hContact, "e-mail2"); @@ -431,8 +425,7 @@ void CSkypeProto::UpdateProfileXStatusMessage(const JSONNode &root, MCONTACT hCo void CSkypeProto::UpdateProfileAvatar(const JSONNode &root, MCONTACT hContact) { CMStringW province = root["avatarUrl"].as_mstring(); - if (!province.IsEmpty() && province != "null") - { + if (!province.IsEmpty() && province != "null") { SetAvatarUrl(hContact, province); ReloadAvatarInfo(hContact); } @@ -460,8 +453,10 @@ void CSkypeProto::LoadProfile(const NETLIBHTTPREQUEST *response, void *arg) return; } - if (username != li.szSkypename.get()) - li.szSkypename = mir_strdup(username.c_str()); + if (li.szSkypename != username.c_str()) + li.szMyname = username.c_str(); + else + li.szMyname = li.szSkypename; UpdateProfileFirstName(root, hContact); UpdateProfileLastName(root, hContact); diff --git a/protocols/SkypeWeb/src/skype_proto.cpp b/protocols/SkypeWeb/src/skype_proto.cpp index fc9f9fea9a..36871f56d0 100644 --- a/protocols/SkypeWeb/src/skype_proto.cpp +++ b/protocols/SkypeWeb/src/skype_proto.cpp @@ -19,25 +19,25 @@ along with this program. If not, see . CSkypeProto::CSkypeProto(const char* protoName, const wchar_t* userName) : PROTO(protoName, userName), - m_PopupClasses(1), - m_InviteDialogs(1), - m_GCCreateDialogs(1), - m_OutMessages(3, PtrKeySortT), - m_bThreadsTerminated(0), - m_TrouterConnection(0), - m_pollingConnection(0), - m_opts(this), - Contacts(this) + m_PopupClasses(1), + m_InviteDialogs(1), + m_GCCreateDialogs(1), + m_OutMessages(3, PtrKeySortT), + m_bThreadsTerminated(0), + m_TrouterConnection(0), + m_pollingConnection(0), + m_opts(this), + Contacts(this) { InitNetwork(); requestQueue = new RequestQueue(m_hNetlibUser); CreateProtoService(PS_CREATEACCMGRUI, &CSkypeProto::OnAccountManagerInit); - CreateProtoService(PS_GETAVATARINFO, &CSkypeProto::SvcGetAvatarInfo); - CreateProtoService(PS_GETAVATARCAPS, &CSkypeProto::SvcGetAvatarCaps); - CreateProtoService(PS_GETMYAVATAR, &CSkypeProto::SvcGetMyAvatar); - CreateProtoService(PS_SETMYAVATAR, &CSkypeProto::SvcSetMyAvatar); + CreateProtoService(PS_GETAVATARINFO, &CSkypeProto::SvcGetAvatarInfo); + CreateProtoService(PS_GETAVATARCAPS, &CSkypeProto::SvcGetAvatarCaps); + CreateProtoService(PS_GETMYAVATAR, &CSkypeProto::SvcGetMyAvatar); + CreateProtoService(PS_SETMYAVATAR, &CSkypeProto::SvcSetMyAvatar); CreateProtoService("/IncomingCallCLE", &CSkypeProto::OnIncomingCallCLE); CreateProtoService("/IncomingCallPP", &CSkypeProto::OnIncomingCallPP); @@ -61,18 +61,16 @@ CSkypeProto::~CSkypeProto() { requestQueue->Stop(); delete requestQueue; - + UnInitNetwork(); UninitPopups(); - if (m_hPollingThread) - { + if (m_hPollingThread) { TerminateThread(m_hPollingThread, NULL); m_hPollingThread = NULL; } - if (m_hTrouterThread) - { + if (m_hTrouterThread) { TerminateThread(m_hTrouterThread, NULL); m_hTrouterThread = NULL; } @@ -90,14 +88,13 @@ int CSkypeProto::OnPreShutdown(WPARAM, LPARAM) m_hPollingEvent.Set(); m_hTrouterEvent.Set(); - + return 0; } DWORD_PTR CSkypeProto::GetCaps(int type, MCONTACT) { - switch (type) - { + switch (type) { case PFLAGNUM_1: return PF1_IM | PF1_AUTHREQ | PF1_CHAT | PF1_BASICSEARCH | PF1_MODEMSG | PF1_FILE; case PFLAGNUM_2: @@ -122,20 +119,17 @@ int CSkypeProto::SetAwayMsg(int, const wchar_t *msg) HANDLE CSkypeProto::GetAwayMsg(MCONTACT hContact) { - PushRequest(new GetProfileRequest(li, Contacts[hContact]), [this, hContact](const NETLIBHTTPREQUEST *response) - { + PushRequest(new GetProfileRequest(li, Contacts[hContact]), [this, hContact](const NETLIBHTTPREQUEST *response) { if (!response || !response->pData) return; JSONNode root = JSONNode::parse(response->pData); - if (JSONNode &mood = root["mood"]) - { + if (JSONNode &mood = root["mood"]) { CMStringW str = mood.as_mstring(); this->ProtoBroadcastAck(hContact, ACKTYPE_AWAYMSG, ACKRESULT_SUCCESS, (HANDLE)1, (LPARAM)str.c_str()); } - else - { + else { this->ProtoBroadcastAck(hContact, ACKTYPE_AWAYMSG, ACKRESULT_SUCCESS, (HANDLE)1, 0); } }); @@ -149,12 +143,12 @@ MCONTACT CSkypeProto::AddToList(int, PROTOSEARCHRESULT *psr) if (psr->id.a == NULL) return NULL; MCONTACT hContact; - + if (psr->flags & PSR_UNICODE) hContact = AddContact(T2Utf(psr->id.w)); - else + else hContact = AddContact(psr->id.a); - + return hContact; } @@ -174,7 +168,7 @@ MCONTACT CSkypeProto::AddToListByEvent(int, int, MEVENT hDbEvent) return NULL; DB_AUTH_BLOB blob(dbei.pBlob); - + MCONTACT hContact = AddContact(blob.get_email()); return hContact; } @@ -232,8 +226,7 @@ int CSkypeProto::SetStatus(int iNewStatus) if (iNewStatus == m_iDesiredStatus) return 0; - switch (iNewStatus) - { + switch (iNewStatus) { case ID_STATUS_FREECHAT: case ID_STATUS_ONTHEPHONE: iNewStatus = ID_STATUS_ONLINE; @@ -256,16 +249,14 @@ int CSkypeProto::SetStatus(int iNewStatus) int old_status = m_iStatus; m_iDesiredStatus = iNewStatus; - if (iNewStatus == ID_STATUS_OFFLINE) - { - if (m_iStatus > ID_STATUS_CONNECTING + 1) - { + if (iNewStatus == ID_STATUS_OFFLINE) { + if (m_iStatus > ID_STATUS_CONNECTING + 1) { SendRequest(new DeleteEndpointRequest(li)); } m_iStatus = m_iDesiredStatus = ID_STATUS_OFFLINE; // logout requestQueue->Stop(); - + CloseDialogs(); ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)old_status, ID_STATUS_OFFLINE); @@ -273,17 +264,14 @@ int CSkypeProto::SetStatus(int iNewStatus) SetAllContactsStatus(ID_STATUS_OFFLINE); return 0; } - else - { + else { if (old_status == ID_STATUS_CONNECTING) return 0; - if (old_status == ID_STATUS_OFFLINE && m_iStatus == ID_STATUS_OFFLINE) - { + if (old_status == ID_STATUS_OFFLINE && m_iStatus == ID_STATUS_OFFLINE) { Login(); } - else - { + else { SendRequest(new SetStatusRequest(MirandaToSkypeStatus(m_iDesiredStatus), li), &CSkypeProto::OnStatusChanged); } } @@ -300,8 +288,7 @@ int CSkypeProto::UserIsTyping(MCONTACT hContact, int type) int CSkypeProto::OnEvent(PROTOEVENTTYPE iEventType, WPARAM wParam, LPARAM lParam) { - switch (iEventType) - { + switch (iEventType) { case EV_PROTO_ONLOAD: return OnAccountLoaded(wParam, lParam); @@ -336,8 +323,7 @@ int CSkypeProto::RecvContacts(MCONTACT hContact, PROTORECVEVENT* pre) pBlob = (PBYTE)mir_calloc(cbBlob); - for (i = 0, pCurBlob = pBlob; i < nCount; i++) - { + for (i = 0, pCurBlob = pBlob; i < nCount; i++) { //mir_strcpy((char*)pCurBlob, _T2A(isrList[i]->nick.w)); pCurBlob += mir_strlen((PCHAR)pCurBlob) + 1; @@ -352,4 +338,4 @@ int CSkypeProto::RecvContacts(MCONTACT hContact, PROTORECVEVENT* pre) mir_free(pBlob); return 0; -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_proto.h b/protocols/SkypeWeb/src/skype_proto.h index b1a006fc19..079ee35d09 100644 --- a/protocols/SkypeWeb/src/skype_proto.h +++ b/protocols/SkypeWeb/src/skype_proto.h @@ -381,8 +381,8 @@ private: { return (m_iStatus > ID_STATUS_OFFLINE); } - __forceinline bool IsMe(const char *szSkypename) - { return (!mir_strcmpi(szSkypename, li.szSkypename) || !mir_strcmp(szSkypename, ptrA(getStringA("SelfEndpointName")))); + __forceinline bool IsMe(const char *str) + { return (!mir_strcmpi(str, li.szMyname) || !mir_strcmp(str, ptrA(getStringA("SelfEndpointName")))); } MEVENT AddEventToDb(MCONTACT hContact, WORD type, DWORD timestamp, DWORD flags, DWORD cbBlob, PBYTE pBlob); diff --git a/protocols/SkypeWeb/src/skype_search.cpp b/protocols/SkypeWeb/src/skype_search.cpp index 37c3805244..55f6e2ba7c 100644 --- a/protocols/SkypeWeb/src/skype_search.cpp +++ b/protocols/SkypeWeb/src/skype_search.cpp @@ -26,8 +26,7 @@ HANDLE CSkypeProto::SearchBasic(const wchar_t* id) void CSkypeProto::SearchBasicThread(void* id) { debugLogA("CSkypeProto::OnSearchBasicThread"); - if (IsOnline()) - { + if (IsOnline()) { ptrA szString(mir_urlEncode(T2Utf((wchar_t*)id))); SendRequest(new GetSearchRequest(szString, li), &CSkypeProto::OnSearch); } @@ -54,8 +53,7 @@ void CSkypeProto::OnSearch(const NETLIBHTTPREQUEST *response) } const JSONNode &items = root["results"].as_array(); - for (auto it = items.begin(); it != items.end(); ++it) - { + for (auto it = items.begin(); it != items.end(); ++it) { const JSONNode &item = (*it)["nodeProfileData"]; std::string skypeId = item["skypeId"].as_string(); @@ -67,6 +65,6 @@ void CSkypeProto::OnSearch(const NETLIBHTTPREQUEST *response) psr.nick.a = const_cast(name.c_str()); ProtoBroadcastAck(0, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE)1, (LPARAM)&psr); } - + ProtoBroadcastAck(0, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1, 0); -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_timers.cpp b/protocols/SkypeWeb/src/skype_timers.cpp index 6d30fcbb94..30ac71e60f 100644 --- a/protocols/SkypeWeb/src/skype_timers.cpp +++ b/protocols/SkypeWeb/src/skype_timers.cpp @@ -22,12 +22,9 @@ mir_cs CSkypeProto::accountsLock; void CSkypeProto::ProcessTimer() { - if (IsOnline()) - { + if (IsOnline()) { PushRequest(new GetContactListRequest(li, NULL), &CSkypeProto::LoadContactList); SendPresence(false); - //if (!m_hTrouterThread) - // SendRequest(new CreateTrouterRequest(), &CSkypeProto::OnCreateTrouter); } } @@ -35,9 +32,7 @@ void CALLBACK CSkypeProto::TimerProc(HWND, UINT, UINT_PTR, DWORD) { mir_cslock lck(accountsLock); for (int i = 0; i < Accounts.getCount(); i++) - { Accounts[i]->ProcessTimer(); - } } void CSkypeProto::SkypeSetTimer() diff --git a/protocols/SkypeWeb/src/skype_trouter.cpp b/protocols/SkypeWeb/src/skype_trouter.cpp index 6b0f7b8ad4..1fee70ed46 100644 --- a/protocols/SkypeWeb/src/skype_trouter.cpp +++ b/protocols/SkypeWeb/src/skype_trouter.cpp @@ -82,8 +82,7 @@ LBL_Error: void CSkypeProto::OnGetTrouter(const NETLIBHTTPREQUEST *response) { - if (response == NULL || response->pData == NULL) - { + if (response == NULL || response->pData == NULL) { debugLogA("Failed to establish a TRouter connection."); return; } @@ -92,12 +91,11 @@ void CSkypeProto::OnGetTrouter(const NETLIBHTTPREQUEST *response) int iStart = 0; CMStringA szToken = data.Tokenize(":", iStart).Trim(); TRouter.sessId = szToken.GetString(); - + m_hTrouterEvent.Set(); m_hTrouterHealthEvent.Set(); - if ((time(NULL) - TRouter.lastRegistrationTime) >= 3600) - { + if ((time(NULL) - TRouter.lastRegistrationTime) >= 3600) { SendRequest(new RegisterTrouterRequest(li, TRouter.url.c_str(), TRouter.sessId.c_str())); TRouter.lastRegistrationTime = time(NULL); } @@ -122,35 +120,29 @@ void CSkypeProto::TRouterThread(void*) int errors = 0; - while (!m_bThreadsTerminated) - { + while (!m_bThreadsTerminated) { m_hTrouterEvent.Wait(); errors = 0; TrouterPollRequest *request = new TrouterPollRequest(TRouter.socketIo, TRouter.connId, TRouter.st, TRouter.se, TRouter.sig, TRouter.instance, TRouter.ccid, TRouter.sessId); - while (errors < POLLING_ERRORS_LIMIT && m_iStatus > ID_STATUS_OFFLINE) - { + while (errors < POLLING_ERRORS_LIMIT && m_iStatus > ID_STATUS_OFFLINE) { request->nlc = m_TrouterConnection; NLHR_PTR response(request->Send(m_hNetlibUser)); - - if (response == NULL) - { + + if (response == NULL) { m_TrouterConnection = nullptr; errors++; continue; } - if (response->resultCode == 200) - { + if (response->resultCode == 200) { errors = 0; - if (response->pData) - { + if (response->pData) { char *json = strstr(response->pData, "{"); - if (json != NULL) - { + if (json != NULL) { JSONNode root = JSONNode::parse(json); std::string szBody = root["body"].as_string(); const JSONNode &headers = root["headers"]; @@ -159,8 +151,7 @@ void CSkypeProto::TRouterThread(void*) } } } - else - { + else { errors++; SendRequest(new HealthTrouterRequest(TRouter.ccid.c_str()), &CSkypeProto::OnHealth); @@ -170,8 +161,7 @@ void CSkypeProto::TRouterThread(void*) } delete request; - if (m_iStatus != ID_STATUS_OFFLINE) - { + if (m_iStatus != ID_STATUS_OFFLINE) { debugLogA(__FUNCTION__ ": unexpected termination; switching protocol to offline"); SetStatus(ID_STATUS_OFFLINE); } @@ -189,13 +179,11 @@ void CSkypeProto::OnTrouterEvent(const JSONNode &body, const JSONNode &) std::string gp = body["gp"].as_string(); int evt = body["evt"].as_int(); - switch (evt) - { + switch (evt) { case 100: //incoming call { std::string callId = body["convoCallId"].as_string(); - if (!uid.empty()) - { + if (!uid.empty()) { MCONTACT hContact = AddContact(uid.c_str(), true); MEVENT hEvent = AddDbEvent(SKYPE_DB_EVENT_TYPE_INCOMING_CALL, hContact, time(NULL), DBEF_READ, gp.c_str(), callId.c_str()); @@ -247,4 +235,4 @@ INT_PTR CSkypeProto::OnIncomingCallPP(WPARAM wParam, LPARAM hContact) NotifyEventHooks(g_hCallEvent, (WPARAM)hContact, (LPARAM)0); return 0; -} \ No newline at end of file +} diff --git a/protocols/SkypeWeb/src/skype_utils.cpp b/protocols/SkypeWeb/src/skype_utils.cpp index 3f91e7242f..a88f281e6c 100644 --- a/protocols/SkypeWeb/src/skype_utils.cpp +++ b/protocols/SkypeWeb/src/skype_utils.cpp @@ -347,10 +347,8 @@ char *CSkypeProto::RemoveHtml(const char *text) std::string new_string = ""; std::string data = text; - for (std::string::size_type i = 0; i < data.length(); i++) - { - if (data.at(i) == '<') - { + for (std::string::size_type i = 0; i < data.length(); i++) { + if (data.at(i) == '<') { i = data.find(">", i); if (i == std::string::npos) break; @@ -358,71 +356,57 @@ char *CSkypeProto::RemoveHtml(const char *text) continue; } - if (data.at(i) == '&') - { + if (data.at(i) == '&') { std::string::size_type begin = i; i = data.find(";", i); - if (i == std::string::npos) - { + if (i == std::string::npos) { i = begin; } else { std::string entity = data.substr(begin + 1, i - begin - 1); bool found = false; - if (entity.length() > 1 && entity.at(0) == '#') - { + if (entity.length() > 1 && entity.at(0) == '#') { // Numeric replacement bool hex = false; - if (entity.at(1) == 'x') - { + if (entity.at(1) == 'x') { hex = true; entity = entity.substr(2); } - else - { + else { entity = entity.substr(1); } - if (!entity.empty()) - { + if (!entity.empty()) { found = true; errno = 0; unsigned long value = strtoul(entity.c_str(), NULL, hex ? 16 : 10); - if (errno != 0) - { // error with conversion in strtoul, ignore the result + if (errno != 0) { // error with conversion in strtoul, ignore the result found = false; } - else if (value <= 127) - { // U+0000 .. U+007F + else if (value <= 127) { // U+0000 .. U+007F new_string += (char)value; } - else if (value >= 128 && value <= 2047) - { // U+0080 .. U+07FF + else if (value >= 128 && value <= 2047) { // U+0080 .. U+07FF new_string += (char)(192 + (value / 64)); new_string += (char)(128 + (value % 64)); } - else if (value >= 2048 && value <= 65535) - { // U+0800 .. U+FFFF + else if (value >= 2048 && value <= 65535) { // U+0800 .. U+FFFF new_string += (char)(224 + (value / 4096)); new_string += (char)(128 + ((value / 64) % 64)); new_string += (char)(128 + (value % 64)); } - else - { + else { new_string += (char)((value >> 24) & 0xFF); new_string += (char)((value >> 16) & 0xFF); new_string += (char)((value >> 8) & 0xFF); - new_string += (char)((value)& 0xFF); + new_string += (char)((value) & 0xFF); } } } - else - { + else { // Keyword replacement - for (int j = 0; j < _countof(htmlEntities); j++) - { - if (!mir_strcmpi(entity.c_str(), htmlEntities[j].entity)) - { + for (int j = 0; j < _countof(htmlEntities); j++) { + if (!mir_strcmpi(entity.c_str(), htmlEntities[j].entity)) { new_string += htmlEntities[j].symbol; found = true; break; @@ -445,8 +429,7 @@ char *CSkypeProto::RemoveHtml(const char *text) const char *CSkypeProto::MirandaToSkypeStatus(int status) { - switch (status) - { + switch (status) { case ID_STATUS_AWAY: return "Away"; @@ -490,7 +473,7 @@ CMStringA CSkypeProto::ParseUrl(const char *url, const char *token) const char *start = strstr(url, token); if (start == NULL) return CMStringA(); - + start = start + mir_strlen(token); const char *end = strchr(start, '/'); if (end == NULL) @@ -503,7 +486,7 @@ CMStringA CSkypeProto::GetStringChunk(const char *haystack, const char *start, c const char *sstart = strstr(haystack, start); if (sstart == NULL) return CMStringA(); - + sstart = sstart + mir_strlen(start); const char *send = strstr(sstart, end); if (send == NULL) @@ -559,13 +542,10 @@ INT_PTR CSkypeProto::ParseSkypeUriService(WPARAM, LPARAM lParam) *(szSecondParam++) = 0; // no command or message command - if (!szCommand || (szCommand && !mir_wstrcmpi(szCommand, L"chat"))) - { - if (szSecondParam) - { + if (!szCommand || (szCommand && !mir_wstrcmpi(szCommand, L"chat"))) { + if (szSecondParam) { wchar_t *szChatId = wcsstr(szSecondParam, L"id="); - if (szChatId) - { + if (szChatId) { szChatId += 5; StartChatRoom(szChatId, szChatId); return 0; @@ -575,18 +555,19 @@ INT_PTR CSkypeProto::ParseSkypeUriService(WPARAM, LPARAM lParam) CallService(MS_MSG_SENDMESSAGE, (WPARAM)hContact, NULL); return 0; } - else if (!mir_wstrcmpi(szCommand, L"call")) - { + + if (!mir_wstrcmpi(szCommand, L"call")) { MCONTACT hContact = AddContact(_T2A(szJid), true); NotifyEventHooks(g_hCallEvent, (WPARAM)hContact, (LPARAM)0); return 0; } - else if (!mir_wstrcmpi(szCommand, L"userinfo")){ return 0; } - else if (!mir_wstrcmpi(szCommand, L"add")) - { + + if (!mir_wstrcmpi(szCommand, L"userinfo")) + return 0; + + if (!mir_wstrcmpi(szCommand, L"add")) { MCONTACT hContact = FindContact(_T2A(szJid)); - if (hContact == NULL) - { + if (hContact == NULL) { PROTOSEARCHRESULT psr = { 0 }; psr.cbSize = sizeof(psr); psr.id.w = mir_wstrdup(szJid); @@ -602,16 +583,16 @@ INT_PTR CSkypeProto::ParseSkypeUriService(WPARAM, LPARAM lParam) } return 0; } - if (!mir_wstrcmpi(szCommand, L"sendfile")) - { + + if (!mir_wstrcmpi(szCommand, L"sendfile")) { MCONTACT hContact = AddContact(_T2A(szJid), true); CallService(MS_FILE_SENDFILE, hContact, NULL); return 1; } + if (!mir_wstrcmpi(szCommand, L"voicemail")) - { return 1; - } + return 1; } diff --git a/protocols/SkypeWeb/src/stdafx.h b/protocols/SkypeWeb/src/stdafx.h index 5e53f526da..b5e39887e4 100644 --- a/protocols/SkypeWeb/src/stdafx.h +++ b/protocols/SkypeWeb/src/stdafx.h @@ -80,7 +80,7 @@ struct LoginInfo ptrA szServer; } endpoint; - ptrA szSkypename; + CMStringA szSkypename, szMyname; }; diff --git a/protocols/SkypeWeb/src/version.h b/protocols/SkypeWeb/src/version.h index e1c640d7a3..70693f538f 100644 --- a/protocols/SkypeWeb/src/version.h +++ b/protocols/SkypeWeb/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 12 #define __RELEASE_NUM 2 -#define __BUILD_NUM 3 +#define __BUILD_NUM 4 #include -- cgit v1.2.3