From 1327fc6976d246fe73be1a73b9fb58767b8dc635 Mon Sep 17 00:00:00 2001 From: Sergey Bolhovskoy Date: Thu, 24 Sep 2015 03:44:59 +0000 Subject: VKontakte: fix(?) user status processing rework remove unread message status from clist git-svn-id: http://svn.miranda-ng.org/main/trunk@15430 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/VKontakte/src/misc.cpp | 16 ++++++---------- protocols/VKontakte/src/vk_thread.cpp | 7 ++++--- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp index 06e0bccac2..dcdfd848fe 100644 --- a/protocols/VKontakte/src/misc.cpp +++ b/protocols/VKontakte/src/misc.cpp @@ -666,18 +666,14 @@ void CVkProto::MarkDialogAsRead(MCONTACT hContact) return; MEVENT hDBEvent; + MCONTACT hMContact = db_mc_tryMeta(hContact); while ((hDBEvent = db_event_firstUnread(hContact)) != NULL) { db_event_markRead(hContact, hDBEvent); - int res = CallService(MS_CLIST_REMOVEEVENT, hContact, hDBEvent); - debugLogA("CVkProto::MarkDialogAsRead [1] result = %d, hDbEvent = %d", res, (int)hDBEvent); - } - - hContact = db_mc_tryMeta(hContact); - CLISTEVENT *cle = NULL; - while ((cle = (CLISTEVENT*)CallService(MS_CLIST_GETEVENT, hContact, 0)) != NULL) { - db_event_markRead(hContact, cle->hDbEvent); - int res = CallService(MS_CLIST_REMOVEEVENT, hContact, cle->hDbEvent); - debugLogA("CVkProto::MarkDialogAsRead [2] result = %d, hDbEvent = %d", res, (int)(cle->hDbEvent)); + int res1 = CallService(MS_CLIST_REMOVEEVENT, hMContact, hDBEvent); + int res2 = 2; + if (hContact != hMContact) + res2 = CallService(MS_CLIST_REMOVEEVENT, hContact, hDBEvent); + debugLogA("CVkProto::MarkDialogAsRead [1] result = (%d, %d), hDbEvent = %d", res1, res2, (int)hDBEvent); } } diff --git a/protocols/VKontakte/src/vk_thread.cpp b/protocols/VKontakte/src/vk_thread.cpp index c48a330ef6..9aa1585f20 100644 --- a/protocols/VKontakte/src/vk_thread.cpp +++ b/protocols/VKontakte/src/vk_thread.cpp @@ -403,17 +403,18 @@ void CVkProto::RetrieveUsersInfo(bool flag) userIDs.AppendFormat(_T("%i"), userID); } - CMString codeformat("var userIDs=\"%s\";"); + CMString codeformat("var userIDs=\"%s\";var _fields=\"%s\";"); if (m_bNeedSendOnline) codeformat += _T("API.account.setOnline();"); if (flag && !m_bLoadFullCList) - codeformat += CMString("var US=API.users.get({\"user_ids\":userIDs,\"fields\":\"%s\",\"name_case\":\"nom\"});" + codeformat += CMString("var US=API.users.get({\"user_ids\":userIDs,\"fields\":_fields,\"name_case\":\"nom\"});" + "var _US=API.users.get({\"user_ids\":userIDs,\"fields\":_fields,\"name_case\":\"nom\"});if(_US.length>US.length)US=_US;" "var res=[];var index=US.length;while(index>0){index=index-1;if(US[index].online!=0){res.unshift(US[index]);};};" "return{\"freeoffline\":1,\"users\":res,\"requests\":API.friends.getRequests({\"extended\":0,\"need_mutual\":0,\"out\":0})};"); else - codeformat += CMString("var res=API.users.get({\"user_ids\":userIDs,\"fields\":\"%s\",\"name_case\":\"nom\"});" + codeformat += CMString("var res=API.users.get({\"user_ids\":userIDs,\"fields\":_fields,\"name_case\":\"nom\"});" "return{\"freeoffline\":0,\"users\":res,\"requests\":API.friends.getRequests({\"extended\":0,\"need_mutual\":0,\"out\":0})};"); code.AppendFormat(codeformat, userIDs, CMString(flag ? "online,status" : fieldsName)); -- cgit v1.2.3