From e41000cc3a6d20ae4e9957e97d34a63c5667c395 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 2 Apr 2026 16:47:53 +0300 Subject: [PATCH] Add Poll.description/description_entities. --- telegram-bot-api/Client.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 78f4c80..1dc8345 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -2270,7 +2270,8 @@ class Client::JsonPollOption final : public td::Jsonable { class Client::JsonPoll final : public td::Jsonable { public: - JsonPoll(const td_api::poll *poll, const Client *client) : poll_(poll), client_(client) { + JsonPoll(const td_api::poll *poll, const td_api::formattedText *description, const Client *client) + : poll_(poll), description_(description), client_(client) { } void store(td::JsonValueScope *scope) const { auto object = scope->enter_object(); @@ -2315,10 +2316,17 @@ class Client::JsonPoll final : public td::Jsonable { default: UNREACHABLE(); } + if (description_ != nullptr && !description_->text_.empty()) { + object("description", description_->text_); + if (!description_->entities_.empty()) { + object("description_entities", JsonVectorEntities(description_->entities_, client_)); + } + } } private: const td_api::poll *poll_; + const td_api::formattedText *description_; const Client *client_; }; @@ -3841,7 +3849,7 @@ class Client::JsonExternalReplyInfo final : public td::Jsonable { } case td_api::messagePoll::ID: { auto content = static_cast(reply_->content_.get()); - object("poll", JsonPoll(content->poll_.get(), client_)); + object("poll", JsonPoll(content->poll_.get(), content->description_.get(), client_)); break; } case td_api::messageUnsupported::ID: @@ -4114,7 +4122,7 @@ void Client::JsonMessage::store(td::JsonValueScope *scope) const { } case td_api::messagePoll::ID: { auto content = static_cast(message_->content.get()); - object("poll", JsonPoll(content->poll_.get(), client_)); + object("poll", JsonPoll(content->poll_.get(), content->description_.get(), client_)); break; } case td_api::messageChatAddMembers::ID: { @@ -6185,7 +6193,7 @@ class Client::TdOnStopPollCallback final : public TdQueryCallback { return fail_query_with_error(std::move(query_), 400, "message poll not found"); } auto message_poll = static_cast(message_info->content.get()); - answer_query(JsonPoll(message_poll->poll_.get(), client_), std::move(query_)); + answer_query(JsonPoll(message_poll->poll_.get(), message_poll->description_.get(), client_), std::move(query_)); } private: @@ -6214,7 +6222,7 @@ class Client::TdOnStopBusinessPollCallback final : public TdQueryCallback { return fail_query_with_error(std::move(query_), 400, "message poll not found"); } auto message_poll = static_cast(message->content.get()); - answer_query(JsonPoll(message_poll->poll_.get(), client_), std::move(query_)); + answer_query(JsonPoll(message_poll->poll_.get(), message_poll->description_.get(), client_), std::move(query_)); } private: @@ -16447,7 +16455,7 @@ void Client::add_new_message(object_ptr &&message, bool is_edit void Client::add_update_poll(object_ptr &&update) { CHECK(update != nullptr); - add_update(UpdateType::Poll, JsonPoll(update->poll_.get(), this), 86400, update->poll_->id_); + add_update(UpdateType::Poll, JsonPoll(update->poll_.get(), nullptr, this), 86400, update->poll_->id_); } void Client::add_update_poll_answer(object_ptr &&update) {