From d9dcd0db0addb2ed4f9f438c8bb3f6658cf55ff6 Mon Sep 17 00:00:00 2001 From: ElzorFox Date: Thu, 26 Dec 2024 15:49:03 +0500 Subject: =?UTF-8?q?VKontakte:=20fixes=20#4817=20(VK:=20=D1=81=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B0=D1=82=D1=8C=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BE=D1=84.=20=D0=BC=D0=B5=D1=81=D1=81=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B6=D0=B5=D1=80=20=D0=B4=D0=BB=D1=8F=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=82=D0=B0=D0=BA=D1=82=D0=B0=20=D0=B2=D0=BE=20?= =?UTF-8?q?=D0=B2=D1=81=D0=BF=D0=BB=D1=8B=D0=B2=D0=B0=D1=8E=D1=89=D0=B5?= =?UTF-8?q?=D0=BC=20=D0=BC=D0=B5=D0=BD=D1=8E)=20version=20bump?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocols/VKontakte/src/version.h | 2 +- protocols/VKontakte/src/vk_proto.cpp | 9 +++++++++ protocols/VKontakte/src/vk_proto.h | 4 ++++ protocols/VKontakte/src/vk_thread.cpp | 13 +++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) (limited to 'protocols/VKontakte/src') diff --git a/protocols/VKontakte/src/version.h b/protocols/VKontakte/src/version.h index d06a5cb1d2..a2e00333e9 100644 --- a/protocols/VKontakte/src/version.h +++ b/protocols/VKontakte/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 1 #define __RELEASE_NUM 17 -#define __BUILD_NUM 3 +#define __BUILD_NUM 4 #include diff --git a/protocols/VKontakte/src/vk_proto.cpp b/protocols/VKontakte/src/vk_proto.cpp index 885c2c1205..968fa8512d 100644 --- a/protocols/VKontakte/src/vk_proto.cpp +++ b/protocols/VKontakte/src/vk_proto.cpp @@ -239,6 +239,7 @@ void CVkProto::InitMenus() CreateProtoService(PS_GETALLSERVERHISTORYFORCONTACT, &CVkProto::SvcGetAllServerHistoryForContact); CreateProtoService(PS_GETALLSERVERHISTORY, &CVkProto::SvcGetAllServerHistory); CreateProtoService(PS_VISITPROFILE, &CVkProto::SvcVisitProfile); + CreateProtoService(PS_GOTOSITEIM, &CVkProto::SvcGoToSiteIM); CreateProtoService(PS_CREATECHAT, &CVkProto::SvcCreateChat); CreateProtoService(PS_ADDASFRIEND, &CVkProto::SvcAddAsFriend); CreateProtoService(PS_DELETEFRIEND, &CVkProto::SvcDeleteFriend); @@ -265,6 +266,13 @@ void CVkProto::InitMenus() SET_UID(mi, 0x828cc50e, 0x398d, 0x43a2, 0xbf, 0xd3, 0xa9, 0x96, 0x47, 0x9d, 0x52, 0xff); m_hContactMenuItems[CMI_VISITPROFILE] = Menu_AddContactMenuItem(&mi, m_szModuleName); + mi.pszService = PS_GOTOSITEIM; + mi.position = -200001000 + CMI_GOTOSITEIM; + mi.hIcolibItem = g_plugin.getIconHandle(IDI_FORWARD); + mi.name.w = LPGENW("Go to site IM"); + SET_UID(mi, 0x681c7e6f, 0x34fa, 0x4184, 0x81, 0x6f, 0x43, 0x00, 0x51, 0xe7, 0xad, 0x42); + m_hContactMenuItems[CMI_GOTOSITEIM] = Menu_AddContactMenuItem(&mi, m_szModuleName); + mi.pszService = PS_MARKMESSAGESASREAD; mi.position = -200001000 + CMI_MARKMESSAGESASREAD; mi.hIcolibItem = g_plugin.getIconHandle(IDI_MARKMESSAGESASREAD); @@ -402,6 +410,7 @@ int CVkProto::OnPreBuildContactMenu(WPARAM hContact, LPARAM) bool bisBroadcast = !(IsEmpty(ptrW(db_get_wsa(hContact, m_szModuleName, "AudioUrl")))); bool bIsGroup = IsGroupUser(hContact); Menu_ShowItem(m_hContactMenuItems[CMI_VISITPROFILE], iUserId != VK_FEED_USER); + Menu_ShowItem(m_hContactMenuItems[CMI_GOTOSITEIM], iUserId != VK_FEED_USER); Menu_ShowItem(m_hContactMenuItems[CMI_MARKMESSAGESASREAD], iUserId != VK_FEED_USER); Menu_ShowItem(m_hContactMenuItems[CMI_WALLPOST], !isChatRoom(hContact)); Menu_ShowItem(m_hContactMenuItems[CMI_ADDASFRIEND], !bisFriend && !isChatRoom(hContact) && iUserId != VK_FEED_USER && !bIsGroup); diff --git a/protocols/VKontakte/src/vk_proto.h b/protocols/VKontakte/src/vk_proto.h index 368735e235..3003efbf80 100644 --- a/protocols/VKontakte/src/vk_proto.h +++ b/protocols/VKontakte/src/vk_proto.h @@ -29,6 +29,7 @@ along with this program. If not, see . #define PS_GETALLSERVERHISTORYFORCONTACT "/GetAllServerHystoryForContact" #define PS_GETALLSERVERHISTORY "/GetAllServerHystory" #define PS_VISITPROFILE "/VisitProfile" +#define PS_GOTOSITEIM "/GoToSiteIM" #define PS_ADDASFRIEND "/AddAsFriend" #define PS_DELETEFRIEND "/DeleteFriend" #define PS_BANUSER "/BanUser" @@ -94,6 +95,7 @@ struct CVkProto : public PROTO //==== Menus ========================================================================== INT_PTR __cdecl SvcVisitProfile(WPARAM hContact, LPARAM); + INT_PTR __cdecl SvcGoToSiteIM(WPARAM hContact, LPARAM); INT_PTR __cdecl SvcAddAsFriend(WPARAM hContact, LPARAM); INT_PTR __cdecl SvcWipeNonFriendContacts(WPARAM, LPARAM); INT_PTR __cdecl SvcDeleteFriend(WPARAM hContact, LPARAM); @@ -159,6 +161,7 @@ private: CMI_CHATCHANGETOPIC, CMI_CHATINVITEUSER, CMI_VISITPROFILE, + CMI_GOTOSITEIM, CMI_MARKMESSAGESASREAD, CMI_WALLPOST, CMI_ADDASFRIEND, @@ -190,6 +193,7 @@ private: PMI_GETALLSERVERHISTORY, PMI_WIPENONFRIENDS, PMI_VISITPROFILE, + PMI_GOTOSITEIM, PMI_COUNT }; diff --git a/protocols/VKontakte/src/vk_thread.cpp b/protocols/VKontakte/src/vk_thread.cpp index 178809ddbe..6a02bcdd9f 100644 --- a/protocols/VKontakte/src/vk_thread.cpp +++ b/protocols/VKontakte/src/vk_thread.cpp @@ -1140,6 +1140,19 @@ INT_PTR __cdecl CVkProto::SvcVisitProfile(WPARAM hContact, LPARAM) wszUrl.AppendFormat(b_isGroupUser ? L"club%i" : L"id%i", b_isGroupUser ? -1* iUserId : iUserId); } + Utils_OpenUrlW(wszUrl); + return 0; +} + +INT_PTR __cdecl CVkProto::SvcGoToSiteIM(WPARAM hContact, LPARAM) +{ + debugLogA("CVkProto::SvcGoToSiteIM"); + + VKUserID_t iUserId = ReadVKUserID(hContact); + if (isChatRoom(hContact)) + iUserId += VK_CHAT_MIN; + CMStringW wszUrl(FORMAT, L"https://vk.com/im/convo/%d?entrypoint=list_all", iUserId); + Utils_OpenUrlW(wszUrl); return 0; } \ No newline at end of file -- cgit v1.2.3