From b00ea0fb423e9c778d2580c535bf042f32894918 Mon Sep 17 00:00:00 2001 From: ElzorFox Date: Mon, 12 Aug 2024 21:14:44 +0500 Subject: VKontakte: fix parse message id for outgoing messages version bump --- protocols/VKontakte/res/main.ico | Bin 0 -> 5430 bytes protocols/VKontakte/src/version.h | 2 +- protocols/VKontakte/src/vk_messages.cpp | 30 ++++++++++++++++-------------- 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 protocols/VKontakte/res/main.ico diff --git a/protocols/VKontakte/res/main.ico b/protocols/VKontakte/res/main.ico new file mode 100644 index 0000000000..dd9dd15a46 Binary files /dev/null and b/protocols/VKontakte/res/main.ico differ diff --git a/protocols/VKontakte/src/version.h b/protocols/VKontakte/src/version.h index 330ff69a06..6da093fa56 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 16 -#define __BUILD_NUM 11 +#define __BUILD_NUM 12 #include diff --git a/protocols/VKontakte/src/vk_messages.cpp b/protocols/VKontakte/src/vk_messages.cpp index 5ce9ad0b1e..b0858978d8 100644 --- a/protocols/VKontakte/src/vk_messages.cpp +++ b/protocols/VKontakte/src/vk_messages.cpp @@ -214,21 +214,23 @@ void CVkProto::OnSendMessage(MHttpResponse *reply, AsyncHttpRequest *pReq) JSONNode jnRoot; const JSONNode &jnResponse = CheckJsonResponse(pReq, reply, jnRoot); if (jnResponse) { - debugLogA("CVkProto::OnSendMessage jnResponse %d", jnResponse.as_int()); - switch (jnResponse.type()) { - case JSON_NUMBER: - iMessageId = jnResponse.as_int(); - break; - case JSON_STRING: - if (swscanf(jnResponse.as_mstring(), L"%u", &iMessageId) != 1) + iMessageId = jnResponse["message_id"].as_int(); + debugLogA("CVkProto::OnSendMessage jnResponse %d", iMessageId ? iMessageId : jnResponse.as_int()); + if (!iMessageId) + switch (jnResponse.type()) { + case JSON_NUMBER: + iMessageId = jnResponse.as_int(); + break; + case JSON_STRING: + if (swscanf(jnResponse.as_mstring(), L"%u", &iMessageId) != 1) + iMessageId = 0; + break; + case JSON_ARRAY: + iMessageId = jnResponse.as_array()[json_index_t(0)].as_int(); + break; + default: iMessageId = 0; - break; - case JSON_ARRAY: - iMessageId = jnResponse.as_array()[json_index_t(0)].as_int(); - break; - default: - iMessageId = 0; - } + } if (iMessageId > ReadQSWord(param->hContact, "lastmsgid")) WriteQSWord(param->hContact, "lastmsgid", iMessageId); -- cgit v1.2.3