From 9e9d67e4c600277cc073b706a8d7a158e71a2b2e Mon Sep 17 00:00:00 2001 From: ElzorFox Date: Mon, 10 Jun 2019 09:48:37 +0500 Subject: =?UTF-8?q?VKontakte:=20add=20hidden=20option=20=E2=80=98FilterAud?= =?UTF-8?q?ioMessages=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocols/VKontakte/src/misc.cpp | 14 +++++++++++--- protocols/VKontakte/src/vk_chats.cpp | 4 ++++ protocols/VKontakte/src/vk_history.cpp | 6 ++++++ protocols/VKontakte/src/vk_messages.cpp | 4 ++++ protocols/VKontakte/src/vk_struct.cpp | 1 + protocols/VKontakte/src/vk_struct.h | 1 + 6 files changed, 27 insertions(+), 3 deletions(-) (limited to 'protocols') diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp index d0b75e0e6f..4765e129a3 100644 --- a/protocols/VKontakte/src/misc.cpp +++ b/protocols/VKontakte/src/misc.cpp @@ -1118,6 +1118,9 @@ CMStringW CVkProto::GetAttachmentDescr(const JSONNode &jnAttachments, BBCSupport if (!jnDoc) continue; + if (jnDoc["type"].as_int() == 5 && m_vkOptions.bFilterAudioMessages) + return L"== FilterAudioMessages =="; + CMStringW wszTitle(jnDoc["title"].as_mstring()); CMStringW wszUrl(jnDoc["url"].as_mstring()); res.AppendFormat(L"%s: %s", @@ -1154,6 +1157,7 @@ CMStringW CVkProto::GetAttachmentDescr(const JSONNode &jnAttachments, BBCSupport debugLogA("CVkProto::GetAttachmentDescr SubAttachments"); CMStringW wszAttachmentDescr = GetAttachmentDescr(jnSubAttachments, iBBC); wszAttachmentDescr.Replace(L"\n", L"\n\t\t"); + wszAttachmentDescr.Replace(L"== FilterAudioMessages ==", L""); res += L"\n\t\t" + wszAttachmentDescr; } } @@ -1164,6 +1168,7 @@ CMStringW CVkProto::GetAttachmentDescr(const JSONNode &jnAttachments, BBCSupport debugLogA("CVkProto::GetAttachmentDescr SubAttachments"); CMStringW wszAttachmentDescr = GetAttachmentDescr(jnSubAttachments, iBBC); wszAttachmentDescr.Replace(L"\n", L"\n\t"); + wszAttachmentDescr.Replace(L"== FilterAudioMessages ==", L""); res += L"\n\t" + wszAttachmentDescr; } } @@ -1337,9 +1342,12 @@ CMStringW CVkProto::GetFwdMessages(const JSONNode &jnMessages, const JSONNode &j const JSONNode &jnAttachments = jnMsg["attachments"]; if (jnAttachments) { CMStringW wszAttachmentDescr = GetAttachmentDescr(jnAttachments, iBBC == bbcNo ? iBBC : m_vkOptions.BBCForAttachments()); - if (!wszBody.IsEmpty()) - wszAttachmentDescr = L"\n" + wszAttachmentDescr; - wszBody += wszAttachmentDescr; + if (wszAttachmentDescr != L"== FilterAudioMessages ==") { + if (!wszBody.IsEmpty()) + wszAttachmentDescr = L"\n" + wszAttachmentDescr; + + wszBody += wszAttachmentDescr; + } } wszBody.Replace(L"\n", L"\n\t"); diff --git a/protocols/VKontakte/src/vk_chats.cpp b/protocols/VKontakte/src/vk_chats.cpp index ce8afc5a67..fc9c834ad1 100644 --- a/protocols/VKontakte/src/vk_chats.cpp +++ b/protocols/VKontakte/src/vk_chats.cpp @@ -287,6 +287,10 @@ void CVkProto::AppendChatMessage(int id, const JSONNode &jnMsg, const JSONNode & const JSONNode &jnAttachments = jnMsg["attachments"]; if (jnAttachments) { CMStringW wszAttachmentDescr = GetAttachmentDescr(jnAttachments, bbcNo); + + if (wszAttachmentDescr == L"== FilterAudioMessages ==") + return; + if (!wszBody.IsEmpty()) wszAttachmentDescr = L"\n" + wszAttachmentDescr; wszBody += wszAttachmentDescr; diff --git a/protocols/VKontakte/src/vk_history.cpp b/protocols/VKontakte/src/vk_history.cpp index 2de3001185..b661b2e438 100644 --- a/protocols/VKontakte/src/vk_history.cpp +++ b/protocols/VKontakte/src/vk_history.cpp @@ -257,6 +257,12 @@ void CVkProto::OnReceiveHistoryMessages(NETLIBHTTPREQUEST *reply, AsyncHttpReque const JSONNode &jnAttachments = jnMsg["attachments"]; if (jnAttachments) { CMStringW wszAttachmentDescr = GetAttachmentDescr(jnAttachments, m_vkOptions.BBCForAttachments()); + + if (wszAttachmentDescr == L"== FilterAudioMessages ==") { + count++; + continue; + } + if (!wszBody.IsEmpty()) wszAttachmentDescr = L"\n" + wszAttachmentDescr; wszBody += wszAttachmentDescr; diff --git a/protocols/VKontakte/src/vk_messages.cpp b/protocols/VKontakte/src/vk_messages.cpp index 35156eedcf..a83c5661c7 100644 --- a/protocols/VKontakte/src/vk_messages.cpp +++ b/protocols/VKontakte/src/vk_messages.cpp @@ -258,6 +258,10 @@ void CVkProto::OnReceiveMessages(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pRe const JSONNode &jnAttachments = jnMsg["attachments"]; if (jnAttachments) { wszAttachmentDescr = GetAttachmentDescr(jnAttachments, m_vkOptions.BBCForAttachments()); + + if (wszAttachmentDescr == L"== FilterAudioMessages ==") + continue; + if (!wszBody.IsEmpty()) wszBody += L"\n"; wszBody += wszAttachmentDescr; diff --git a/protocols/VKontakte/src/vk_struct.cpp b/protocols/VKontakte/src/vk_struct.cpp index 0a687ab270..8524d18538 100644 --- a/protocols/VKontakte/src/vk_struct.cpp +++ b/protocols/VKontakte/src/vk_struct.cpp @@ -198,6 +198,7 @@ CVKOptions::CVKOptions(PROTO_INTERFACE *proto) : bLoadFullCList(proto, "LoadFullCList", false), bShowVkDeactivateEvents(proto, "ShowVkDeactivateEvents", true), bStickerBackground(proto, "StickerBackground", false), + bFilterAudioMessages(proto, "FilterAudioMessages", false), bShowProtoMenuItem0(proto, "ShowProtoMenuItem0", true), bShowProtoMenuItem1(proto, "ShowProtoMenuItem1", true), diff --git a/protocols/VKontakte/src/vk_struct.h b/protocols/VKontakte/src/vk_struct.h index 16e20217df..5b4609c681 100644 --- a/protocols/VKontakte/src/vk_struct.h +++ b/protocols/VKontakte/src/vk_struct.h @@ -297,6 +297,7 @@ struct CVKOptions { CMOption bLoadSentAttachments; CMOption bShowVkDeactivateEvents; CMOption bStickerBackground; + CMOption bFilterAudioMessages; CMOption bShowProtoMenuItem0; CMOption bShowProtoMenuItem1; -- cgit v1.2.3