summaryrefslogtreecommitdiff
path: root/protocols/VKontakte/src
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/VKontakte/src')
-rw-r--r--protocols/VKontakte/src/misc.cpp23
-rw-r--r--protocols/VKontakte/src/vk.h2
-rw-r--r--protocols/VKontakte/src/vk_avatars.cpp4
-rw-r--r--protocols/VKontakte/src/vk_captcha.cpp6
-rw-r--r--protocols/VKontakte/src/vk_chats.cpp12
-rw-r--r--protocols/VKontakte/src/vk_feed.cpp70
-rw-r--r--protocols/VKontakte/src/vk_files.cpp11
-rw-r--r--protocols/VKontakte/src/vk_history.cpp13
-rw-r--r--protocols/VKontakte/src/vk_messages.cpp2
-rw-r--r--protocols/VKontakte/src/vk_options.cpp30
-rw-r--r--protocols/VKontakte/src/vk_proto.cpp66
-rw-r--r--protocols/VKontakte/src/vk_proto.h25
-rw-r--r--protocols/VKontakte/src/vk_queue.cpp6
-rw-r--r--protocols/VKontakte/src/vk_search.cpp11
-rw-r--r--protocols/VKontakte/src/vk_thread.cpp34
15 files changed, 154 insertions, 161 deletions
diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp
index 51e5bdd360..3d77b0b0a4 100644
--- a/protocols/VKontakte/src/misc.cpp
+++ b/protocols/VKontakte/src/misc.cpp
@@ -126,7 +126,7 @@ char* ExpUrlEncode(const char *szUrl, bool strict)
*d++ = szHexDigits[*s >> 4];
*d++ = szHexDigits[*s & 0xF];
}
-
+
*d = '\0';
return szOutput;
}
@@ -149,7 +149,7 @@ void CVkProto::SetAllContactStatuses(int iStatus)
SetChatStatus(hContact, iStatus);
else if (getWord(hContact, "Status") != iStatus)
setWord(hContact, "Status", iStatus);
-
+
if (iStatus == ID_STATUS_OFFLINE) {
SetMirVer(hContact, -1);
db_unset(hContact, m_szModuleName, "ListeningTo");
@@ -342,7 +342,7 @@ static CMStringA getAttr(char *szSrc, LPCSTR szAttrName)
*pEnd = '>';
if (p2 == NULL)
return "";
-
+
return CMStringA(p1, (int)(p2-p1));
}
@@ -490,11 +490,11 @@ void __cdecl CVkProto::DBAddAuthRequestThread(void *p)
void CVkProto::DBAddAuthRequest(const MCONTACT hContact)
{
debugLogA("CVkProto::DBAddAuthRequest");
-
+
T2Utf szNick(ptrT(db_get_tsa(hContact, m_szModuleName, "Nick")));
T2Utf szFirstName(ptrT(db_get_tsa(hContact, m_szModuleName, "FirstName")));
T2Utf szLastName(ptrT(db_get_tsa(hContact, m_szModuleName, "LastName")));
-
+
//blob is: uin(DWORD), hContact(DWORD), nick(ASCIIZ), first(ASCIIZ), last(ASCIIZ), email(ASCIIZ), reason(ASCIIZ)
//blob is: 0(DWORD), hContact(DWORD), nick(ASCIIZ), first(ASCIIZ), last(ASCIIZ), ""(ASCIIZ), ""(ASCIIZ)
DBEVENTINFO dbei = { sizeof(DBEVENTINFO) };
@@ -503,7 +503,7 @@ void CVkProto::DBAddAuthRequest(const MCONTACT hContact)
dbei.flags = DBEF_UTF;
dbei.eventType = EVENTTYPE_AUTHREQUEST;
dbei.cbBlob = (DWORD)(sizeof(DWORD) * 2 + mir_strlen(szNick) + mir_strlen(szFirstName) + mir_strlen(szLastName) + 5);
-
+
PBYTE pCurBlob = dbei.pBlob = (PBYTE)mir_alloc(dbei.cbBlob);
*((PDWORD)pCurBlob) = 0;
@@ -623,7 +623,7 @@ void CVkProto::ContactTypingThread(void *p)
CallService(MS_PROTO_CONTACTISTYPING, hContact, 5);
Sleep(5500);
CallService(MS_PROTO_CONTACTISTYPING, hContact);
-
+
if (!ServiceExists(MS_MESSAGESTATE_UPDATE)) {
Sleep(1500);
SetSrmmReadStatus(hContact);
@@ -685,7 +685,7 @@ char* CVkProto::GetStickerId(const char* Msg, int &stickerid)
{
stickerid = 0;
char* retMsg = NULL;
-
+
int iRes = 0;
char HeadMsg[32] = { 0 };
const char * tmpMsg = strstr(Msg, "[sticker:");
@@ -712,7 +712,7 @@ int CVkProto::OnDbSettingChanged(WPARAM hContact, LPARAM lParam)
if (strcmp(cws->szModule, "ListeningTo"))
return 0;
-
+
CMStringA szListeningTo(m_szModuleName);
szListeningTo += "Enabled";
if (!strcmp(cws->szSetting, szListeningTo)) {
@@ -725,7 +725,7 @@ int CVkProto::OnDbSettingChanged(WPARAM hContact, LPARAM lParam)
m_iMusicSendMetod = cws->value.bVal == 0 ? sendNone : iOldMusicSendMetod;
setByte("MusicSendMetod", m_iMusicSendMetod);
- }
+ }
return 0;
}
@@ -1058,7 +1058,7 @@ CMString CVkProto::GetFwdMessages(const JSONNode &jnMessages, const JSONNode &jn
debugLogA("CVkProto::GetFwdMessages pMessages == NULL");
return res;
}
-
+
OBJLIST<CVkUserInfo> vkUsers(2, NumericKeySortT);
for (auto it = jnFUsers.begin(); it != jnFUsers.end(); ++it) {
@@ -1227,5 +1227,4 @@ CMString CVkProto::RemoveBBC(CMString& tszSrc)
}
return tszRes;
-
} \ No newline at end of file
diff --git a/protocols/VKontakte/src/vk.h b/protocols/VKontakte/src/vk.h
index f1a5f902fd..866d655bca 100644
--- a/protocols/VKontakte/src/vk.h
+++ b/protocols/VKontakte/src/vk.h
@@ -104,4 +104,4 @@ HANDLE GetIconHandle(int iCommand);
char* ExpUrlEncode(const char *szUrl, bool strict = false);
bool IsEmpty(LPCTSTR str);
-bool IsEmpty(LPCSTR str);
+bool IsEmpty(LPCSTR str); \ No newline at end of file
diff --git a/protocols/VKontakte/src/vk_avatars.cpp b/protocols/VKontakte/src/vk_avatars.cpp
index 11386736ce..6f9529830b 100644
--- a/protocols/VKontakte/src/vk_avatars.cpp
+++ b/protocols/VKontakte/src/vk_avatars.cpp
@@ -118,10 +118,10 @@ INT_PTR CVkProto::SvcGetMyAvatar(WPARAM wParam, LPARAM lParam)
PROTO_AVATAR_INFORMATION ai = { 0 };
if (SvcGetAvatarInfo(0, (LPARAM)&ai) != GAIR_SUCCESS)
return 1;
-
+
TCHAR* buf = (TCHAR*)wParam;
int size = (int)lParam;
-
+
_tcsncpy(buf, ai.filename, size);
buf[size - 1] = 0;
diff --git a/protocols/VKontakte/src/vk_captcha.cpp b/protocols/VKontakte/src/vk_captcha.cpp
index 4067a4e392..9798000c66 100644
--- a/protocols/VKontakte/src/vk_captcha.cpp
+++ b/protocols/VKontakte/src/vk_captcha.cpp
@@ -124,7 +124,7 @@ bool CVkProto::RunCaptchaForm(LPCSTR szUrl, CMStringA &result)
memio.pBuf = reply->pData;
memio.fif = FIF_UNKNOWN; /* detect */
param.bmp = (HBITMAP)CallService(MS_IMG_LOADFROMMEM, (WPARAM)&memio);
-
+
BITMAP bmp = {0};
GetObject(param.bmp, sizeof(bmp), &bmp);
param.w = bmp.bmWidth;
@@ -132,7 +132,7 @@ bool CVkProto::RunCaptchaForm(LPCSTR szUrl, CMStringA &result)
int res = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_CAPTCHAFORM), NULL, CaptchaFormDlgProc, (LPARAM)&param);
if (res == 0)
return false;
-
+
debugLogA("CVkProto::RunCaptchaForm: user entered text %s", param.Result);
result = param.Result;
return true;
@@ -146,7 +146,7 @@ bool CVkProto::ApplyCaptcha(AsyncHttpRequest *pReq, const JSONNode &jnErrorNode)
debugLogA("CVkProto::ApplyCaptcha");
if (!IsOnline())
return false;
-
+
CMStringA szUrl(jnErrorNode["captcha_img"].as_mstring());
CMStringA szSid(jnErrorNode["captcha_sid"].as_mstring());
diff --git a/protocols/VKontakte/src/vk_chats.cpp b/protocols/VKontakte/src/vk_chats.cpp
index 98274d0f95..7a08fbeca9 100644
--- a/protocols/VKontakte/src/vk_chats.cpp
+++ b/protocols/VKontakte/src/vk_chats.cpp
@@ -367,7 +367,7 @@ void CVkProto::AppendChatMessage(int id, const JSONNode &jnMsg, const JSONNode &
}
else
tszBody = TranslateT("invite user");
- }
+ }
}
}
else if (tszAction == _T("chat_title_update")) {
@@ -576,7 +576,7 @@ static INT_PTR CALLBACK InviteDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPA
else
EndDialog(hwndDlg, 0);
return TRUE;
- }
+ }
}
return 0;
@@ -720,7 +720,7 @@ void CVkProto::KickFromChat(int chat_id, int user_id, const JSONNode &jnMsg, con
if (user_id == m_myUserId)
LeaveChat(chat_id);
-
+
CVkChatInfo *cc = (CVkChatInfo*)m_chats.find((CVkChatInfo*)&chat_id);
if (cc == NULL)
return;
@@ -747,7 +747,7 @@ void CVkProto::OnChatLeave(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
debugLogA("CVkProto::OnChatLeave %d", reply->resultCode);
if (reply->resultCode != 200)
return;
-
+
CVkChatInfo *cc = (CVkChatInfo*)pReq->pUserInfo;
LeaveChat(cc->m_chatid);
}
@@ -764,7 +764,7 @@ INT_PTR __cdecl CVkProto::SvcDestroyKickChat(WPARAM hContact, LPARAM)
int chat_id = getDword(hContact, "vk_chat_id", -1);
if (chat_id == -1)
return 1;
-
+
CMStringA code;
code.Format("var Hist = API.messages.getHistory({\"chat_id\":%d, \"count\":200});"
"var countMsg = Hist.count;var itemsMsg = Hist.items@.id; "
@@ -822,7 +822,7 @@ void CVkProto::NickMenuHook(CVkChatInfo *cc, GCHOOK *gch)
else
SvcVisitProfile(hContact, 0);
break;
-
+
case IDM_KICK:
if (!IsOnline())
return;
diff --git a/protocols/VKontakte/src/vk_feed.cpp b/protocols/VKontakte/src/vk_feed.cpp
index 7e13131cb0..ab650d932e 100644
--- a/protocols/VKontakte/src/vk_feed.cpp
+++ b/protocols/VKontakte/src/vk_feed.cpp
@@ -20,14 +20,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
void CVkProto::AddFeedSpecialUser()
{
bool bSpecialContact = m_bNewsEnabled || m_bNotificationsEnabled || m_bSpecialContactAlwaysEnabled;
-
+
MCONTACT hContact = FindUser(VK_FEED_USER);
if (!bSpecialContact) {
if (hContact)
CallService(MS_DB_CONTACT_DELETE, (WPARAM)hContact);
return;
}
-
+
if (!hContact) {
hContact = FindUser(VK_FEED_USER, true);
@@ -39,7 +39,7 @@ void CVkProto::AddFeedSpecialUser()
setTString(hContact, "domain", _T("feed"));
setTString(hContact, "Homepage", _T("https://vk.com/feed"));
}
-
+
if (getWord(hContact, "Status") != ID_STATUS_ONLINE)
setWord(hContact, "Status", ID_STATUS_ONLINE);
SetMirVer(hContact, 7);
@@ -71,8 +71,12 @@ void CVkProto::AddFeedEvent(CVKNewsItem& vkNewsItem)
void CVkProto::AddCListEvent(bool bNews)
{
+ SkinPlaySound("VKNewsFeed");
+
+ if (!m_bUseNonStandardNotifications)
+ return;
+
MCONTACT hContact = FindUser(VK_FEED_USER, true);
-
CLISTEVENT cle = { sizeof(cle) };
cle.hIcon = IcoLib_GetIconByHandle(GetIconHandle(IDI_NOTIFICATION));
cle.pszService = "SRMsg/ReadMessage";
@@ -84,7 +88,6 @@ void CVkProto::AddCListEvent(bool bNews)
cle.ptszTooltip = toolTip;
CallService(MS_CLIST_ADDEVENT, 0, (LPARAM)&cle);
- SkinPlaySound("VKNewsFeed");
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -117,9 +120,9 @@ void CVkProto::CreateVkUserInfoList(OBJLIST<CVkUserInfo> &vkUsers, const JSONNod
debugLogA("CVkProto::CreateVkUserInfoList");
if (!jnResponse)
return;
-
+
const JSONNode &jnProfiles = jnResponse["profiles"];
-
+
if (jnProfiles)
for (auto it = jnProfiles.begin(); it != jnProfiles.end(); ++it) {
const JSONNode &jnProfile = (*it);
@@ -138,7 +141,7 @@ void CVkProto::CreateVkUserInfoList(OBJLIST<CVkUserInfo> &vkUsers, const JSONNod
CVkUserInfo * vkUser = new CVkUserInfo(UserId, false, tszNick, tszLink, FindUser(UserId));
vkUsers.insert(vkUser);
}
-
+
const JSONNode &jnGroups = jnResponse["groups"];
if (jnGroups)
for (auto it = jnGroups.begin(); it != jnGroups.end(); ++it) {
@@ -254,7 +257,7 @@ CVKNewsItem* CVkProto::GetVkNewsItem(const JSONNode &jnItem, OBJLIST<CVkUserInfo
tszTitleFormat = Translate("Repost from %s");
bPostLink = false;
}
-
+
vkNewsItem->tszText.AppendFormat(tszResFormat,
SetBBCString(vkNewsItem->vkUser->m_tszUserNick, m_iBBCForNews, vkbbcUrl,
vkNewsItem->vkUser->m_tszLink), tszText);
@@ -330,7 +333,7 @@ CVKNewsItem* CVkProto::GetVkParent(const JSONNode &jnParent, VKObjType vkParentT
return NULL;
CVKNewsItem * vkNotificationItem = new CVKNewsItem();
-
+
if (vkParentType == vkPhoto) {
CMString tszPhoto = GetVkPhotoItem(jnParent, m_iBBCForNews);
LONG iOwnerId = jnParent["owner_id"].as_int();
@@ -338,12 +341,12 @@ CVKNewsItem* CVkProto::GetVkParent(const JSONNode &jnParent, VKObjType vkParentT
vkNotificationItem->tszId.AppendFormat(_T("%d_%d"), iOwnerId, iId);
vkNotificationItem->tszLink.AppendFormat(_T("https://vk.com/photo%s"), vkNotificationItem->tszId);
vkNotificationItem->tszText.AppendFormat(_T("\n%s"), tszPhoto);
-
+
if (ptszReplyText) {
vkNotificationItem->tszText.AppendFormat(_T("\n>> %s"), SetBBCString(ptszReplyText, m_iBBCForNews, vkbbcI));
vkNotificationItem->tszPopupText.AppendFormat(_T(">> %s"), ptszReplyText);
}
-
+
vkNotificationItem->tszText.AppendFormat(_T("\n%s"), SetBBCString(TranslateT("Link"), m_iBBCForNews, vkbbcUrl, vkNotificationItem->tszLink));
}
else if (vkParentType == vkVideo) {
@@ -352,10 +355,10 @@ CVKNewsItem* CVkProto::GetVkParent(const JSONNode &jnParent, VKObjType vkParentT
CMString tszTitle(jnParent["title"].as_mstring());
vkNotificationItem->tszId.AppendFormat(_T("%d_%d"), iOwnerId, iId);
vkNotificationItem->tszLink.AppendFormat(_T("https://vk.com/video%s"), vkNotificationItem->tszId);
-
+
CMString tszText(jnParent["text"].as_mstring());
ClearFormatNick(tszText);
-
+
if (!tszText.IsEmpty())
vkNotificationItem->tszText.AppendFormat(_T("\n%s: %s"), SetBBCString(TranslateT("Video description:"), m_iBBCForNews, vkbbcB), SetBBCString(tszText, m_iBBCForNews, vkbbcI));
@@ -363,7 +366,7 @@ CVKNewsItem* CVkProto::GetVkParent(const JSONNode &jnParent, VKObjType vkParentT
vkNotificationItem->tszText.AppendFormat(_T("\n>> %s"), SetBBCString(ptszReplyText, m_iBBCForNews, vkbbcI));
vkNotificationItem->tszPopupText.AppendFormat(_T(">> %s"), ptszReplyText);
}
-
+
vkNotificationItem->tszText.AppendFormat(_T("\n%s"), SetBBCString(tszTitle, m_iBBCForNews, vkbbcUrl, vkNotificationItem->tszLink));
}
else if (vkParentType == vkPost) {
@@ -371,10 +374,10 @@ CVKNewsItem* CVkProto::GetVkParent(const JSONNode &jnParent, VKObjType vkParentT
LONG iId = jnParent["id"].as_int();
vkNotificationItem->tszId.AppendFormat(_T("%d_%d"), iToId, iId);
vkNotificationItem->tszLink.AppendFormat(_T("https://vk.com/wall%s%s"), vkNotificationItem->tszId, ptszReplyLink ? ptszReplyLink : _T(""));
-
+
CMString tszText(jnParent["text"].as_mstring());
ClearFormatNick(tszText);
-
+
if (!tszText.IsEmpty()) {
vkNotificationItem->tszText.AppendFormat(_T("\n%s: %s"), SetBBCString(TranslateT("Post text:"), m_iBBCForNews, vkbbcB), SetBBCString(tszText, m_iBBCForNews, vkbbcI));
vkNotificationItem->tszPopupText.AppendFormat(_T("%s: %s"), TranslateT("Post text:"), tszText);
@@ -396,10 +399,10 @@ CVKNewsItem* CVkProto::GetVkParent(const JSONNode &jnParent, VKObjType vkParentT
vkNotificationItem->tszId.AppendFormat(_T("%d_%d"), iOwnerId, iId);
vkNotificationItem->tszLink.AppendFormat(_T("https://vk.com/topic%s%s"),
vkNotificationItem->tszId, ptszReplyLink ? ptszReplyLink : _T(""));
-
+
CMString tszText(jnParent["text"].as_mstring());
ClearFormatNick(tszText);
-
+
if (!tszText.IsEmpty()) {
vkNotificationItem->tszText.AppendFormat(_T("\n%s %s"), SetBBCString(TranslateT("Topic text:"), m_iBBCForNews, vkbbcB), SetBBCString(tszText, m_iBBCForNews, vkbbcI));
vkNotificationItem->tszPopupText.AppendFormat(_T("%s %s"), TranslateT("Topic text:"), tszText);
@@ -411,7 +414,7 @@ CVKNewsItem* CVkProto::GetVkParent(const JSONNode &jnParent, VKObjType vkParentT
vkNotificationItem->tszPopupText += _T("\n");
vkNotificationItem->tszPopupText.AppendFormat(_T(">> %s"), ptszReplyText);
}
-
+
vkNotificationItem->tszText.AppendFormat(_T("\n%s"), SetBBCString(tszTitle, m_iBBCForNews, vkbbcUrl, vkNotificationItem->tszLink));
}
else if (vkParentType == vkComment) {
@@ -459,10 +462,10 @@ CVKNewsItem* CVkProto::GetVkNotificationsItem(const JSONNode &jnItem, OBJLIST<CV
CMString tszType(jnItem["type"].as_mstring());
VKObjType vkFeedbackType = vkNull, vkParentType = vkNull;
CMString tszNotificationTranslate = SpanVKNotificationType(tszType, vkFeedbackType, vkParentType);
-
+
const JSONNode &jnFeedback = jnItem["feedback"];
const JSONNode &jnParent = jnItem["parent"];
-
+
if (!jnFeedback || !jnParent)
return NULL;
@@ -472,7 +475,7 @@ CVKNewsItem* CVkProto::GetVkNotificationsItem(const JSONNode &jnItem, OBJLIST<CV
if (!vkNotification)
return NULL;
-
+
if (vkNotification && !tszFeedback.IsEmpty()) {
CMString tszNotificaton;
tszNotificaton.AppendFormat(tszFeedback, tszNotificationTranslate, vkNotification->tszText);
@@ -480,14 +483,14 @@ CVKNewsItem* CVkProto::GetVkNotificationsItem(const JSONNode &jnItem, OBJLIST<CV
tszFeedback = RemoveBBC(tszFeedback);
int idx = tszFeedback.Find(_T(" %s %s"));
-
+
vkNotification->tszPopupTitle.AppendFormat(_T("%s %s"), tszFeedback.Mid(0, idx), tszNotificationTranslate);
if (tszFeedback.GetLength() > idx + 7) {
if (!vkNotification->tszPopupText.IsEmpty())
vkNotification->tszPopupText += _T("\n>> ");
vkNotification->tszPopupText += tszFeedback.Mid(idx + 7, tszFeedback.GetLength() - idx - 7);
}
-
+
vkNotification->tszType = tszType;
vkNotification->tDate = jnItem["date"].as_int();
vkNotification->vkFeedbackType = vkFeedbackType;
@@ -495,7 +498,7 @@ CVKNewsItem* CVkProto::GetVkNotificationsItem(const JSONNode &jnItem, OBJLIST<CV
vkNotification->vkUser = vkUser;
return vkNotification;
}
-
+
delete vkNotification;
return NULL;
}
@@ -509,7 +512,7 @@ CVKNewsItem* CVkProto::GetVkGroupInvates(const JSONNode &jnItem, OBJLIST<CVkUser
CMString tszType(jnItem["type"].as_mstring());
VKObjType vkFeedbackType = vkNull, vkParentType = vkNull;
CMString tszNotificationTranslate = SpanVKNotificationType(tszType, vkFeedbackType, vkParentType);
-
+
if (!jnItem["id"])
return NULL;
@@ -538,7 +541,7 @@ CVKNewsItem* CVkProto::GetVkGroupInvates(const JSONNode &jnItem, OBJLIST<CVkUser
vkNotification->tszText.AppendFormat(_T("%s %s %s"), tszUsers, tszNotificationTranslate, tszGroupName);
vkNotification->tszPopupTitle.AppendFormat(_T("%s %s %s"), iUserId ? vkNotification->vkUser->m_tszUserNick : TranslateT("Unknown"), tszNotificationTranslate, tszGName);
-
+
tszIds += tszId;
setTString("InviteGroupIds", tszIds);
@@ -556,7 +559,7 @@ void CVkProto::RetrieveUnreadNews(time_t tLastNewsTime)
time_t tLastNewsReqTime = getDword("LastNewsReqTime", time(NULL) - 24 * 60 * 60);
if (time(NULL) - tLastNewsReqTime < 3 * 60)
return;
-
+
CMStringA szFilter;
szFilter = m_bNewsFilterPosts ? "post" : "";
@@ -590,7 +593,7 @@ void CVkProto::RetrieveUnreadNews(time_t tLastNewsTime)
debugLogA("CVkProto::RetrieveUnreadNews szSource empty");
return;
}
-
+
Push(new AsyncHttpRequest(this, REQUEST_GET, "/method/newsfeed.get.json", true, &CVkProto::OnReceiveUnreadNews)
<< INT_PARAM("count", 100)
<< INT_PARAM("return_banned", m_bNewsSourceIncludeBanned ? 1 : 0)
@@ -761,7 +764,6 @@ void CVkProto::OnReceiveUnreadNotifications(NETLIBHTTPREQUEST *reply, AsyncHttpR
else
delete vkNotificationItem;
}
-
}
if (jnGroupInvates) {
@@ -769,15 +771,15 @@ void CVkProto::OnReceiveUnreadNotifications(NETLIBHTTPREQUEST *reply, AsyncHttpR
if (jnItems)
for (auto it = jnItems.begin(); it != jnItems.end(); ++it) {
- CVKNewsItem *vkNotificationItem = GetVkGroupInvates((*it), vkUsers);
+ CVKNewsItem *vkNotificationItem = GetVkGroupInvates((*it), vkUsers);
if (!vkNotificationItem)
continue;
- if (vkNotification.find(vkNotificationItem) == NULL)
+ if (vkNotification.find(vkNotificationItem) == NULL)
vkNotification.insert(vkNotificationItem);
else
delete vkNotificationItem;
}
- }
+ }
bool bNotificationCommentAdded = false;
bool bNotificationComment = false;
diff --git a/protocols/VKontakte/src/vk_files.cpp b/protocols/VKontakte/src/vk_files.cpp
index ca9822b47a..bcfd1e8635 100644
--- a/protocols/VKontakte/src/vk_files.cpp
+++ b/protocols/VKontakte/src/vk_files.cpp
@@ -60,7 +60,7 @@ void CVkProto::SendFileFiled(CVkFileUploadParam *fup, int ErrorCode)
break;
case VKERR_INVALID_PARAMETERS:
tszError = TranslateT("One of the parameters specified was missing or invalid");
- break;
+ break;
case VKERR_COULD_NOT_SAVE_FILE:
tszError = TranslateT("Couldn't save file");
break;
@@ -181,7 +181,6 @@ void CVkProto::OnReciveUploadServer(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *
CMStringA boundary, header;
CMStringA NamePart = fup->atrName();
CMStringA FNamePart = fup->fileName();
-
// Boundary
int iboundary;
Utils_GetRandom(&iboundary, sizeof(iboundary));
@@ -304,7 +303,7 @@ void CVkProto::OnReciveUpload(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
SendFileFiled(fup, VKERR_FTYPE_NOT_SUPPORTED);
return;
}
-
+
pUploadReq->pUserInfo = pReq->pUserInfo;
Push(pUploadReq);
}
@@ -336,7 +335,7 @@ void CVkProto::OnReciveUploadFile(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pR
SendFileFiled(fup, VKERR_INVALID_PARAMETERS);
return;
}
-
+
CMString Attachment;
switch (fup->GetType()) {
@@ -355,7 +354,7 @@ void CVkProto::OnReciveUploadFile(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pR
}
AsyncHttpRequest *pMsgReq;
-
+
if (isChatRoom(fup->hContact)) {
ptrT tszChatID(getTStringA(fup->hContact, "ChatRoomID"));
@@ -390,6 +389,6 @@ void CVkProto::OnReciveUploadFile(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pR
pMsgReq << TCHAR_PARAM("message", fup->Desc) << TCHAR_PARAM("attachment", Attachment) << VER_API;
pMsgReq->AddHeader("Content-Type", "application/x-www-form-urlencoded");
-
+
Push(pMsgReq);
} \ No newline at end of file
diff --git a/protocols/VKontakte/src/vk_history.cpp b/protocols/VKontakte/src/vk_history.cpp
index 1e6e1736ad..de7d440583 100644
--- a/protocols/VKontakte/src/vk_history.cpp
+++ b/protocols/VKontakte/src/vk_history.cpp
@@ -101,7 +101,7 @@ void CVkProto::GetServerHistoryLastNDay(MCONTACT hContact, int NDay)
debugLogA("CVkProto::SvcGetServerHistoryLastNDay %d", NDay);
time_t tTime = time(NULL) - 60 * 60 * 24 * NDay;
-
+
MEVENT hDBEvent = db_event_first(hContact);
while (hDBEvent) {
MEVENT hDBEventNext = db_event_next(hContact, hDBEvent);
@@ -111,7 +111,7 @@ void CVkProto::GetServerHistoryLastNDay(MCONTACT hContact, int NDay)
db_event_delete(hContact, hDBEvent);
hDBEvent = hDBEventNext;
}
-
+
db_unset(hContact, m_szModuleName, "lastmsgid");
GetServerHistory(hContact, 0, MAXHISTORYMIDSPERONE, tTime, 0);
}
@@ -121,7 +121,7 @@ void CVkProto::GetServerHistory(MCONTACT hContact, int iOffset, int iCount, int
debugLogA("CVkProto::GetServerHistory %d %d %d %d %d", iOffset, iCount, iTime, iLastMsgId, (int)once);
if (!IsOnline())
return;
-
+
LONG userID = getDword(hContact, "ID", -1);
if (-1 == userID || userID == VK_FEED_USER)
return;
@@ -163,7 +163,6 @@ void CVkProto::GetHistoryDlg(MCONTACT hContact, int iLastMsg)
GetServerHistoryLastNDay(hContact, 3);
break;
}
-
}
void CVkProto::OnReceiveHistoryMessages(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
@@ -182,7 +181,7 @@ void CVkProto::OnReceiveHistoryMessages(NETLIBHTTPREQUEST *reply, AsyncHttpReque
}
return;
}
-
+
int iTime = jnResponse["datetime"].as_int();
const JSONNode &jnMsgs = jnResponse["items"];
const JSONNode &jnFUsers = jnResponse["fwd_users"];
@@ -206,7 +205,7 @@ void CVkProto::OnReceiveHistoryMessages(NETLIBHTTPREQUEST *reply, AsyncHttpReque
int isOut = jnMsg["out"].as_int();
int isRead = jnMsg["read_state"].as_int();
int uid = jnMsg["user_id"].as_int();
-
+
const JSONNode &jnFwdMessages = jnMsg["fwd_messages"];
if (jnFwdMessages) {
CMString tszFwdMessages = GetFwdMessages(jnFwdMessages, jnFUsers, m_iBBCForAttachments);
@@ -214,7 +213,7 @@ void CVkProto::OnReceiveHistoryMessages(NETLIBHTTPREQUEST *reply, AsyncHttpReque
tszFwdMessages = _T("\n") + tszFwdMessages;
tszBody += tszFwdMessages;
}
-
+
const JSONNode &jnAttachments = jnMsg["attachments"];
if (jnAttachments) {
CMString tszAttachmentDescr = GetAttachmentDescr(jnAttachments, m_iBBCForAttachments);
diff --git a/protocols/VKontakte/src/vk_messages.cpp b/protocols/VKontakte/src/vk_messages.cpp
index ae096560d0..cca8ad02d1 100644
--- a/protocols/VKontakte/src/vk_messages.cpp
+++ b/protocols/VKontakte/src/vk_messages.cpp
@@ -320,7 +320,7 @@ void CVkProto::OnReceiveDlgs(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
const JSONNode &jnResponse = CheckJsonResponse(pReq, reply, jnRoot);
if (!jnResponse)
return;
-
+
const JSONNode &jnDlgs = jnResponse["items"];
if (!jnDlgs)
return;
diff --git a/protocols/VKontakte/src/vk_options.cpp b/protocols/VKontakte/src/vk_options.cpp
index 2e753c4e07..86470e1295 100644
--- a/protocols/VKontakte/src/vk_options.cpp
+++ b/protocols/VKontakte/src/vk_options.cpp
@@ -122,17 +122,17 @@ INT_PTR CALLBACK CVkProto::OptionsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
CheckDlgButton(hwndDlg, IDC_DELIVERY, ppro->m_bServerDelivery ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_USE_LOCAL_TIME, ppro->m_bUseLocalTime ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_AUTOCLEAN, ppro->getBool("AutoClean") ? BST_CHECKED : BST_UNCHECKED);
-
+
CheckDlgButton(hwndDlg, IDC_ONREAD, (ppro->m_iMarkMessageReadOn == markOnRead) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_ONRECEIVE, (ppro->m_iMarkMessageReadOn == markOnReceive) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_ONREPLY, (ppro->m_iMarkMessageReadOn == markOnReply) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_ONTYPING, (ppro->m_iMarkMessageReadOn == markOnTyping) ? BST_CHECKED : BST_UNCHECKED);
-
+
CheckDlgButton(hwndDlg, IDC_SYNC_OFF, (ppro->m_iSyncHistoryMetod == syncOff) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_SYNC_AUTO, (ppro->m_iSyncHistoryMetod == syncAuto) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_SYNC_LAST1DAY, (ppro->m_iSyncHistoryMetod == sync1Days) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_SYNC_LAST3DAY, (ppro->m_iSyncHistoryMetod == sync3Days) ? BST_CHECKED : BST_UNCHECKED);
-
+
return TRUE;
case WM_COMMAND:
@@ -151,12 +151,12 @@ INT_PTR CALLBACK CVkProto::OptionsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
case IDC_DELIVERY:
case IDC_USE_LOCAL_TIME:
case IDC_AUTOCLEAN:
-
+
case IDC_ONREAD:
case IDC_ONRECEIVE:
case IDC_ONREPLY:
case IDC_ONTYPING:
-
+
case IDC_SYNC_OFF:
case IDC_SYNC_AUTO:
case IDC_SYNC_LAST1DAY:
@@ -178,7 +178,7 @@ INT_PTR CALLBACK CVkProto::OptionsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
ppro->setGroup(str);
ppro->setTString("ProtoGroup", str);
}
-
+
GetDlgItemText(hwndDlg, IDC_PASSWORD, str, _countof(str));
T2Utf szRawPasswd(str);
if (szRawPasswd != NULL)
@@ -186,7 +186,7 @@ INT_PTR CALLBACK CVkProto::OptionsProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, L
ppro->m_bServerDelivery = IsDlgButtonChecked(hwndDlg, IDC_DELIVERY) == BST_CHECKED;
ppro->setByte("ServerDelivery", ppro->m_bServerDelivery);
-
+
ppro->setByte("AutoClean", IsDlgButtonChecked(hwndDlg, IDC_AUTOCLEAN) == BST_CHECKED);
ppro->m_bUseLocalTime = IsDlgButtonChecked(hwndDlg, IDC_USE_LOCAL_TIME) == BST_CHECKED;
@@ -256,7 +256,7 @@ INT_PTR CALLBACK CVkProto::OptionsAdvProc(HWND hwndDlg, UINT uMsg, WPARAM wParam
CheckDlgButton(hwndDlg, IDC_CLEAR_SERVER_HISTORY, ppro->m_bClearServerHistory ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_REMOVE_FROM_FRENDLIST, ppro->m_bRemoveFromFrendlist ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_REMOVE_FROM_CLIST, ppro->m_bRemoveFromClist ? BST_CHECKED : BST_UNCHECKED);
-
+
CheckDlgButton(hwndDlg, IDC_SEND_MUSIC_NONE, (ppro->m_iMusicSendMetod == sendNone) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_SEND_MUSIC_BROADCAST, (ppro->m_iMusicSendMetod == sendBroadcastOnly) ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_SEND_MUSIC_STATUS, (ppro->m_iMusicSendMetod == sendStatusOnly) ? BST_CHECKED : BST_UNCHECKED);
@@ -275,7 +275,7 @@ INT_PTR CALLBACK CVkProto::OptionsAdvProc(HWND hwndDlg, UINT uMsg, WPARAM wParam
if ((HWND)lParam == GetFocus() && (HIWORD(wParam) == EN_CHANGE))
SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
break;
-
+
case IDC_SYNC_MSG_STATUS:
if (HIWORD(wParam) == BN_CLICKED && (HWND)lParam == GetFocus()) {
EnableWindow(GetDlgItem(hwndDlg, IDC_MESASUREAD), IsDlgButtonChecked(hwndDlg, IDC_SYNC_MSG_STATUS) == BST_UNCHECKED);
@@ -358,7 +358,7 @@ INT_PTR CALLBACK CVkProto::OptionsAdvProc(HWND hwndDlg, UINT uMsg, WPARAM wParam
TCHAR buffer[5] = { 0 };
GetDlgItemText(hwndDlg, IDC_ED_INT_INVIS, buffer, _countof(buffer));
ppro->setDword("InvisibleInterval", ppro->m_iInvisibleInterval = _ttoi(buffer));
-
+
TCHAR str[4096];
GetDlgItemText(hwndDlg, IDC_RET_CHAT_MES, str, _countof(str));
CMString tszReturnChatMessage(str);
@@ -407,7 +407,7 @@ INT_PTR CALLBACK CVkProto::OptionsFeedsProc(HWND hwndDlg, UINT uMsg, WPARAM wPar
CheckDlgButton(hwndDlg, IDC_F_PHOTOS, ppro->m_bNewsFilterPhotos ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_F_TAGS, ppro->m_bNewsFilterTags ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_F_WALLPHOTOS, ppro->m_bNewsFilterWallPhotos ? BST_CHECKED : BST_UNCHECKED);
-
+
CheckDlgButton(hwndDlg, IDC_S_FRIENDS, ppro->m_bNewsSourceFriends ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_S_GROUPS, ppro->m_bNewsSourceGroups ? BST_CHECKED : BST_UNCHECKED);
CheckDlgButton(hwndDlg, IDC_S_PAGES, ppro->m_bNewsSourcePages ? BST_CHECKED : BST_UNCHECKED);
@@ -426,7 +426,7 @@ INT_PTR CALLBACK CVkProto::OptionsFeedsProc(HWND hwndDlg, UINT uMsg, WPARAM wPar
SendDlgItemMessage(hwndDlg, IDC_SPIN_INT_NOTIF, UDM_SETRANGE, 0, MAKELONG(60 * 24, 1));
SendDlgItemMessage(hwndDlg, IDC_SPIN_INT_NOTIF, UDM_SETPOS, 0, ppro->m_iNotificationsInterval);
-
+
return TRUE;
case WM_COMMAND:
@@ -436,7 +436,7 @@ INT_PTR CALLBACK CVkProto::OptionsFeedsProc(HWND hwndDlg, UINT uMsg, WPARAM wPar
if ((HWND)lParam == GetFocus() && (HIWORD(wParam) == EN_CHANGE))
SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
break;
-
+
case IDC_NEWS_ENBL:
case IDC_NOTIF_ENBL:
case IDC_NOTIF_MARK_VIEWED:
@@ -534,7 +534,7 @@ INT_PTR CALLBACK CVkProto::OptionsFeedsProc(HWND hwndDlg, UINT uMsg, WPARAM wPar
GetDlgItemText(hwndDlg, IDC_ED_INT_NOTIF, buffer, _countof(buffer));
ppro->setDword("NotificationsInterval", ppro->m_iNotificationsInterval = _ttoi(buffer));
-
+
}
break;
@@ -666,7 +666,7 @@ int CVkProto::OnOptionsInit(WPARAM wParam, LPARAM)
odp.dwInitParam = LPARAM(this);
odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR | ODPF_DONTTRANSLATE;
odp.ptszGroup = LPGENT("Network");
-
+
odp.ptszTab = LPGENT("Account");
odp.position = 1;
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_MAIN);
diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp
index 0d213c09cc..7f61927ca8 100644
--- a/protocols/VKontakte/src/vk_proto.cpp
+++ b/protocols/VKontakte/src/vk_proto.cpp
@@ -114,7 +114,7 @@ CVkProto::CVkProto(const char *szModuleName, const TCHAR *ptszUserName) :
m_bNotificationFilterReposts = getBool("NotificationFilterReposts", true);
m_bNotificationFilterMentions = getBool("NotificationFilterMentions", true);
m_bNotificationFilterInvites = getBool("NotificationFilterInvites", true);
-
+
m_bUseNonStandardNotifications = getBool("UseNonStandardNotifications", false);
m_bUseNonStandardUrlEncode = getBool("UseNonStandardUrlEncode", true);
@@ -126,7 +126,7 @@ CVkProto::CVkProto(const char *szModuleName, const TCHAR *ptszUserName) :
m_bSyncReadMessageStatusFromServer = getBool("SyncReadMessageStatusFromServer", false);
m_bLoadFullCList = getBool("LoadFullCList", false);
-
+
m_bSetBroadcast = false;
m_bNeedSendOnline = false;
delSetting("InviteGroupIds");
@@ -210,7 +210,7 @@ void CVkProto::InitMenus()
CreateProtoService(PS_LOADVKNEWS, &CVkProto::SvcLoadVKNews);
CreateProtoService(PS_SETSTATUSMSG, &CVkProto::SvcSetStatusMsg);
CreateProtoService(PS_WALLPOST, &CVkProto::SvcWallPost);
-
+
CMenuItem mi;
mi.root = Menu_GetProtocolRoot(this);
@@ -242,7 +242,7 @@ void CVkProto::InitMenus()
mi.name.a = LPGEN("Load news from VK");
SET_UID(mi, 0x7c449456, 0xb731, 0x48cc, 0x9c, 0x4e, 0x20, 0xe4, 0x66, 0x7a, 0x16, 0x23);
g_hProtoMenuItems[PMI_LOADVKNEWS] = Menu_AddProtoMenuItem(&mi, m_szModuleName);
-
+
mi.pszService = PS_VISITPROFILE;
mi.position = 10009 + PMI_VISITPROFILE;
mi.hIcolibItem = IcoLib_GetIconByHandle(GetIconHandle(IDI_VISITPROFILE));
@@ -323,7 +323,7 @@ void CVkProto::InitMenus()
mi.name.t = LPGENT("Reload messages from vk.com...");
SET_UID(mi, 0xc6b59e9f, 0x5250, 0x4146, 0xb6, 0xf3, 0x2d, 0xe1, 0x4, 0x3b, 0x95, 0xf5);
g_hContactMenuItems[CMI_GETSERVERHISTORY] = Menu_AddContactMenuItem(&mi, m_szModuleName);
-
+
mi.root = g_hContactMenuItems[CMI_GETSERVERHISTORY];
mi.pszService = PS_GETSERVERHISTORYLAST1DAY;
@@ -394,7 +394,7 @@ void CVkProto::UnInitMenus()
debugLogA("CVkProto::UnInitMenus");
for (int i = 0; i < PMI_COUNT; i++)
Menu_RemoveItem(g_hProtoMenuItems[i]);
-
+
for (int i = 0; i < CHMI_COUNT; i++)
Menu_RemoveItem(g_hContactHistoryMenuItems[i]);
@@ -405,29 +405,29 @@ void CVkProto::UnInitMenus()
/////////////////////////////////////////////////////////////////////////////////////////
// PopUp support
-LRESULT CALLBACK PopupDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- switch (message) {
- case WM_COMMAND:
- case WM_CONTEXTMENU:
- {
- CVkSendMsgParam *pd = (CVkSendMsgParam *)PUGetPluginData(hwnd);
- if (pd != NULL && pd->hContact != NULL)
- CallServiceSync(MS_MSG_SENDMESSAGE, (WPARAM)pd->hContact, 0);
- PUDeletePopup(hwnd);
- }
- break;
- case UM_FREEPLUGINDATA:
- {
- CVkSendMsgParam *pd = (CVkSendMsgParam *)PUGetPluginData(hwnd);
- delete pd;
- }
- return FALSE;
- default:
- break;
- }
-
- return DefWindowProc(hwnd, message, wParam, lParam);
+LRESULT CALLBACK PopupDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ switch (message) {
+ case WM_COMMAND:
+ case WM_CONTEXTMENU:
+ {
+ CVkSendMsgParam *pd = (CVkSendMsgParam *)PUGetPluginData(hwnd);
+ if (pd != NULL && pd->hContact != NULL)
+ CallServiceSync(MS_MSG_SENDMESSAGE, (WPARAM)pd->hContact, 0);
+ PUDeletePopup(hwnd);
+ }
+ break;
+ case UM_FREEPLUGINDATA:
+ {
+ CVkSendMsgParam *pd = (CVkSendMsgParam *)PUGetPluginData(hwnd);
+ delete pd;
+ }
+ return FALSE;
+ default:
+ break;
+ }
+
+ return DefWindowProc(hwnd, message, wParam, lParam);
}
void CVkProto::InitPopups(void)
@@ -436,7 +436,7 @@ void CVkProto::InitPopups(void)
char name[256];
POPUPCLASS ppc = { sizeof(ppc) };
ppc.flags = PCF_TCHAR;
- ppc.PluginWindowProc = PopupDlgProc;
+ ppc.PluginWindowProc = PopupDlgProc;
ppc.lParam = APF_RETURN_HWND;
mir_sntprintf(desc, _T("%s %s"), m_tszUserName, TranslateT("Errors"));
@@ -486,7 +486,7 @@ void CVkProto::MsgPopup(MCONTACT hContact, const TCHAR *szMsg, const TCHAR *szTi
int CVkProto::OnPreShutdown(WPARAM, LPARAM)
{
debugLogA("CVkProto::OnPreShutdown");
-
+
m_bTerminated = true;
SetEvent(m_evRequestsQueue);
return 0;
@@ -627,7 +627,7 @@ int CVkProto::Authorize(MEVENT hDbEvent)
MCONTACT hContact = MContactFromDbEvent(hDbEvent);
if (hContact == INVALID_CONTACT_ID)
return 1;
-
+
return AuthRequest(hContact, NULL);
}
@@ -650,7 +650,7 @@ int CVkProto::UserIsTyping(MCONTACT hContact, int type)
LONG userID = getDword(hContact, "ID", -1);
if (userID == -1 || !IsOnline() || userID == VK_FEED_USER)
return 1;
-
+
if (m_iMarkMessageReadOn == markOnTyping)
MarkMessagesRead(hContact);
diff --git a/protocols/VKontakte/src/vk_proto.h b/protocols/VKontakte/src/vk_proto.h
index d6a7902d6d..3422e066f6 100644
--- a/protocols/VKontakte/src/vk_proto.h
+++ b/protocols/VKontakte/src/vk_proto.h
@@ -81,7 +81,7 @@ struct CVkProto : public PROTO<CVkProto>
void OnOAuthAuthorize(NETLIBHTTPREQUEST*, AsyncHttpRequest*);
void OnReceiveAvatar(NETLIBHTTPREQUEST*, AsyncHttpRequest*);
-
+
//==== Services ======================================================================
INT_PTR __cdecl SvcCreateAccMgrUI(WPARAM, LPARAM);
@@ -141,26 +141,26 @@ struct CVkProto : public PROTO<CVkProto>
void OnReciveUploadServer(NETLIBHTTPREQUEST*, AsyncHttpRequest*);
void OnReciveUpload(NETLIBHTTPREQUEST*, AsyncHttpRequest*);
void OnReciveUploadFile(NETLIBHTTPREQUEST*, AsyncHttpRequest*);
-
+
//==== Feed ==========================================================================
void AddFeedSpecialUser();
void AddFeedEvent(CVKNewsItem& vkNewsItem);
void AddCListEvent(bool bNews);
-
+
CVkUserInfo* GetVkUserInfo(LONG iUserId, OBJLIST<CVkUserInfo> &vkUsers);
void CreateVkUserInfoList(OBJLIST<CVkUserInfo> &vkUsers, const JSONNode &jnResponse);
-
+
CVKNewsItem* GetVkNewsItem(const JSONNode &jnItem, OBJLIST<CVkUserInfo> &vkUsers, bool isRepost = false);
CVKNewsItem* GetVkGroupInvates(const JSONNode &jnItem, OBJLIST<CVkUserInfo> &vkUsers);
CVKNewsItem* GetVkNotificationsItem(const JSONNode &jnItem, OBJLIST<CVkUserInfo> &vkUsers);
CMString GetVkFeedback(const JSONNode &jnFeedback, VKObjType vkFeedbackType, OBJLIST<CVkUserInfo> &vkUsers, CVkUserInfo *vkUser);
CVKNewsItem* GetVkParent(const JSONNode &jnParent, VKObjType vkParentType, LPCTSTR ptszReplyText = NULL, LPCTSTR ptszReplyLink = NULL);
-
+
void RetrieveUnreadNews(time_t tLastNewsTime);
void OnReceiveUnreadNews(NETLIBHTTPREQUEST*, AsyncHttpRequest*);
-
+
void RetrieveUnreadNotifications(time_t tLastNotificationsTime);
bool FilterNotification(CVKNewsItem* vkNotificationItem, bool& isCommented);
void NotificationMarkAsViewed();
@@ -174,7 +174,7 @@ struct CVkProto : public PROTO<CVkProto>
TCHAR* GetUserStoredPassword(void);
void SetAllContactStatuses(int status);
-
+
MCONTACT FindUser(LONG userid, bool bCreate = false);
MCONTACT FindChat(LONG dwUserid);
@@ -328,7 +328,7 @@ private:
};
OBJLIST<Cookie> m_cookies;
-
+
void InitQueue();
void UninitQueue();
void ExecuteRequest(AsyncHttpRequest*);
@@ -351,7 +351,6 @@ private:
void __cdecl SendMsgAck(void *param);
//============== Options =============================================================
-
bool m_prevError,
m_bOnline,
@@ -403,10 +402,10 @@ private:
enum MarkMsgReadOn { markOnRead, markOnReceive, markOnReply, markOnTyping };
MarkMsgReadOn m_iMarkMessageReadOn;
-
+
enum SyncHistoryMetod { syncOff, syncAuto, sync1Days, sync3Days };
SyncHistoryMetod m_iSyncHistoryMetod;
-
+
enum MusicSendMetod { sendNone, sendStatusOnly, sendBroadcastOnly, sendBroadcastAndStatus };
MusicSendMetod m_iMusicSendMetod;
@@ -431,9 +430,9 @@ private:
m_hPollingThread,
m_hPopupClassError,
m_hPopupClassNotification;
-
+
ULONG m_msgId;
-
+
LIST<void> m_sendIds;
LIST<void> m_incIds;
diff --git a/protocols/VKontakte/src/vk_queue.cpp b/protocols/VKontakte/src/vk_queue.cpp
index e553905e45..0a5ae06552 100644
--- a/protocols/VKontakte/src/vk_queue.cpp
+++ b/protocols/VKontakte/src/vk_queue.cpp
@@ -144,11 +144,11 @@ void CVkProto::WorkerThread(void*)
if (m_bTerminated)
break;
ExecuteRequest(pReq);
- if (need_sleep) { // There can be maximum 3 requests to API methods per second from a client
+ if (need_sleep) { // There can be maximum 3 requests to API methods per second from a client
Sleep(330); // (c) https://vk.com/dev/api_requests
debugLogA("CVkProto::WorkerThread: need sleep");
- }
- }
+ }
+ }
}
m_hWorkerThread = 0;
diff --git a/protocols/VKontakte/src/vk_search.cpp b/protocols/VKontakte/src/vk_search.cpp
index 9180ca6c1c..cdc80f8196 100644
--- a/protocols/VKontakte/src/vk_search.cpp
+++ b/protocols/VKontakte/src/vk_search.cpp
@@ -69,7 +69,7 @@ void CVkProto::SearchByMailThread(void* email)
void __cdecl CVkProto::SearchThread(void* p)
{
PROTOSEARCHBYNAME *pParam = (PROTOSEARCHBYNAME *)p;
-
+
TCHAR arg[200];
mir_sntprintf(arg, _T("%s %s %s"), pParam->pszFirstName, pParam->pszNick, pParam->pszLastName);
debugLog(_T("CVkProto::SearchThread %s"), arg);
@@ -119,7 +119,7 @@ void CVkProto::OnSearch(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
const JSONNode &jnRecord = (*it);
if (!jnRecord)
break;
-
+
PROTOSEARCHRESULT psr = { sizeof(psr) };
psr.flags = PSR_TCHAR;
@@ -133,7 +133,7 @@ void CVkProto::OnSearch(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
psr.firstName.t = mir_tstrdup(FirstName);
psr.lastName.t = mir_tstrdup(LastName);
psr.nick.t = Nick.IsEmpty() ? mir_tstrdup(Domain) : mir_tstrdup(Nick);
-
+
bool filter = true;
if (pParam) {
if (psr.firstName.t && pParam->pszFirstName)
@@ -172,7 +172,7 @@ void CVkProto::OnSearchByMail(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
ProtoBroadcastAck(0, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE)1);
return;
}
-
+
for (auto it = jnItems.begin(); it != jnItems.end(); ++it) {
const JSONNode &jnRecord = (*it);
if (!jnRecord)
@@ -187,13 +187,12 @@ void CVkProto::OnSearchByMail(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
CMString Nick(jnRecord["nickname"].as_mstring());
CMString Email(jnRecord["contact"].as_mstring());
-
psr.id.t = mir_tstrdup(Id);
psr.firstName.t = mir_tstrdup(FirstName);
psr.lastName.t = mir_tstrdup(LastName);
psr.nick.t = Nick.IsEmpty() ? mir_tstrdup(Email) : mir_tstrdup(Nick);
psr.email.t = mir_tstrdup(Email);
-
+
ProtoBroadcastAck(0, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE)1, (LPARAM)&psr);
}
diff --git a/protocols/VKontakte/src/vk_thread.cpp b/protocols/VKontakte/src/vk_thread.cpp
index 7a1e6e9a54..f6a02cbfa4 100644
--- a/protocols/VKontakte/src/vk_thread.cpp
+++ b/protocols/VKontakte/src/vk_thread.cpp
@@ -178,7 +178,7 @@ void CVkProto::OnOAuthAuthorize(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq
ConnectionFailed(LOGINERR_WRONGPASSWORD);
return;
}
-
+
CMStringA szAction, szBody;
bool bSuccess = AutoFillForm(reply->pData, szAction, szBody);
if (!bSuccess || szAction.IsEmpty() || szBody.IsEmpty()) {
@@ -227,9 +227,8 @@ void CVkProto::OnReceiveMyInfo(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq)
const JSONNode &jnResponse = CheckJsonResponse(pReq, reply, jnRoot);
if (!jnResponse)
return;
-
- const JSONNode &jnUser = *(jnResponse.begin());
+ const JSONNode &jnUser = *(jnResponse.begin());
m_myUserId = jnUser["id"].as_int();
setDword("ID", m_myUserId);
@@ -254,7 +253,7 @@ MCONTACT CVkProto::SetContactInfo(const JSONNode &jnItem, bool flag, bool self)
return NULL;
MCONTACT hContact = FindUser(userid, flag);
-
+
if (userid == m_myUserId) {
if (hContact != NULL)
if (self)
@@ -264,7 +263,7 @@ MCONTACT CVkProto::SetContactInfo(const JSONNode &jnItem, bool flag, bool self)
}
else if (hContact == NULL)
return NULL;
-
+
CMString tszNick, tszValue;
int iValue;
@@ -323,14 +322,14 @@ MCONTACT CVkProto::SetContactInfo(const JSONNode &jnItem, bool flag, bool self)
}
else
SetMirVer(hContact, -1); // unset MinVer
-
+
if ((iValue = jnItem["timezone"].as_int()) != 0)
setByte(hContact, "Timezone", iValue * -2);
tszValue = jnItem["mobile_phone"].as_mstring();
if (!tszValue.IsEmpty())
setTString(hContact, "Cellular", tszValue);
-
+
tszValue = jnItem["home_phone"].as_mstring();
if (!tszValue.IsEmpty())
setTString(hContact, "Phone", tszValue);
@@ -358,7 +357,6 @@ MCONTACT CVkProto::SetContactInfo(const JSONNode &jnItem, bool flag, bool self)
db_unset(hContact, m_szModuleName, "AudioUrl");
}
-
tszValue = jnItem["about"].as_mstring();
if (!tszValue.IsEmpty())
setTString(hContact, "About", tszValue);
@@ -379,7 +377,7 @@ void CVkProto::RetrieveUserInfo(LONG userID)
debugLogA("CVkProto::RetrieveUserInfo (%d)", userID);
if (userID == VK_FEED_USER || !IsOnline())
return;
-
+
CMString code(FORMAT, _T("var userIDs=\"%i\";var res=API.users.get({\"user_ids\":userIDs,\"fields\":\"%s\",\"name_case\":\"nom\"});return{\"freeoffline\":0,\"norepeat\":1,\"usercount\":res.length,\"users\":res};"),
userID, CMString(fieldsName));
Push(new AsyncHttpRequest(this, REQUEST_POST, "/method/execute.json", true, &CVkProto::OnReceiveUserInfo)
@@ -407,7 +405,7 @@ void CVkProto::RetrieveUsersInfo(bool bFreeOffline, bool bRepeat)
if (m_bNeedSendOnline)
codeformat += _T("API.account.setOnline();");
-
+
if (bFreeOffline && !m_bLoadFullCList)
codeformat += CMString("var US=[];var res=[];var t=10;while(t>0){"
"US=API.users.get({\"user_ids\":userIDs,\"fields\":_fields,\"name_case\":\"nom\"});"
@@ -431,7 +429,7 @@ void CVkProto::OnReceiveUserInfo(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pRe
if (reply->resultCode != 200 || !IsOnline())
return;
-
+
JSONNode jnRoot;
const JSONNode &jnResponse = CheckJsonResponse(pReq, reply, jnRoot);
if (!jnResponse)
@@ -448,7 +446,7 @@ void CVkProto::OnReceiveUserInfo(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pRe
MCONTACT hContact;
LIST<void> arContacts(10, PtrKeySortT);
-
+
for (hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName))
if (!isChatRoom(hContact))
arContacts.insert((HANDLE)hContact);
@@ -482,7 +480,7 @@ void CVkProto::OnReceiveUserInfo(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pRe
const JSONNode &jnRequests = jnResponse["requests"];
if (!jnRequests)
return;
-
+
int iCount = jnRequests["count"].as_int();
const JSONNode &jnItems = jnRequests["items"];
if (!iCount || !jnItems)
@@ -536,7 +534,6 @@ void CVkProto::OnReceiveFriends(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq
arContacts.insert((HANDLE)hContact);
}
-
const JSONNode &jnItems = jnResponse["items"];
if (jnItems)
@@ -580,8 +577,7 @@ INT_PTR __cdecl CVkProto::SvcDeleteFriend(WPARAM hContact, LPARAM flag)
LONG userID = getDword(hContact, "ID", -1);
if (!IsOnline() || userID == -1 || userID == VK_FEED_USER)
return 1;
-
-
+
ptrT ptszNick(db_get_tsa(hContact, m_szModuleName, "Nick"));
CMString ptszMsg;
if (flag == 0) {
@@ -618,7 +614,7 @@ void CVkProto::OnReceiveDeleteFriend(NETLIBHTTPREQUEST* reply, AsyncHttpRequest*
msgformat = TranslateT("Friend request from the user %s declined");
else if (jnResponse["suggestion_deleted"].as_bool())
msgformat = TranslateT("Friend request suggestion for the user %s deleted");
-
+
msg.AppendFormat(msgformat, tszNick);
MsgPopup(param->hContact, msg, tszNick);
setByte(param->hContact, "Auth", 1);
@@ -626,7 +622,7 @@ void CVkProto::OnReceiveDeleteFriend(NETLIBHTTPREQUEST* reply, AsyncHttpRequest*
else {
msg = TranslateT("User or request was not deleted");
MsgPopup(param->hContact, msg, tszNick);
- }
+ }
}
}
@@ -722,7 +718,7 @@ INT_PTR __cdecl CVkProto::SvcOpenBroadcast(WPARAM hContact, LPARAM)
CMString tszAudio(ptrT(db_get_tsa(hContact, m_szModuleName, "AudioUrl")));
if (!tszAudio.IsEmpty())
Utils_OpenUrlT(tszAudio);
-
+
return 0;
}