aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-05-05 01:22:16 +0300
committerlevlam <levlam@telegram.org>2026-05-05 01:22:16 +0300
commit758e8d0f703da32fcfec9ba02758b38821e6b8d3 (patch)
treeac16a1e2154b31d6f63569aedbc5ac2db1aae7e8
parent25e4994382ef07c8d0d061b42e89a65fae9f595e (diff)
Support adding media to poll options.
-rw-r--r--telegram-bot-api/Client.cpp13
-rw-r--r--telegram-bot-api/Client.h2
2 files changed, 10 insertions, 5 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index a2cd9aa..1317509 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -11780,8 +11780,8 @@ td::Result<td_api::object_ptr<td_api::InputMessageContent>> Client::get_input_po
auto r_input_message_content = get_input_poll_media(query, r_value.move_as_ok(), false);
if (r_input_message_content.is_error()) {
- return td::Status::Error(400, PSLICE()
- << "Can't parse InputPollMedia: " << r_input_message_content.error().message());
+ return td::Status::Error(
+ 400, PSLICE() << "Failed to parse InputPollMedia: " << r_input_message_content.error().message());
}
return r_input_message_content.move_as_ok();
}
@@ -11986,7 +11986,8 @@ td::Result<td_api::object_ptr<td_api::inputMessageInvoice>> Client::get_input_me
std::move(paid_media_caption));
}
-td::Result<td::vector<td_api::object_ptr<td_api::inputPollOption>>> Client::get_input_poll_options(const Query *query) {
+td::Result<td::vector<td_api::object_ptr<td_api::inputPollOption>>> Client::get_input_poll_options(
+ const Query *query) const {
auto input_options = query->arg("options");
LOG(INFO) << "Parsing JSON object: " << input_options;
auto r_value = json_decode(input_options);
@@ -12009,7 +12010,11 @@ td::Result<td::vector<td_api::object_ptr<td_api::inputPollOption>>> Client::get_
TRY_RESULT(parse_mode, object.get_optional_string_field("text_parse_mode"));
TRY_RESULT(option_text,
get_formatted_text(std::move(text), std::move(parse_mode), object.extract_field("text_entities")));
- options.push_back(make_object<td_api::inputPollOption>(std::move(option_text), nullptr));
+ auto r_media = get_input_poll_media(query, object.extract_field("media"), true);
+ if (r_media.is_error()) {
+ return td::Status::Error(400, PSLICE() << "Failed to parse poll option media: " << r_media.error().message());
+ }
+ options.push_back(make_object<td_api::inputPollOption>(std::move(option_text), r_media.move_as_ok()));
continue;
}
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index f2150d1..6a7437e 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -708,7 +708,7 @@ class Client final : public WebhookActor::Callback {
bool disable_notification, bool protect_content, bool allow_paid_broadcast, int64 effect_id,
object_ptr<td_api::inputSuggestedPostInfo> &&input_suggested_post_info);
- static td::Result<td::vector<object_ptr<td_api::inputPollOption>>> get_input_poll_options(const Query *query);
+ td::Result<td::vector<object_ptr<td_api::inputPollOption>>> get_input_poll_options(const Query *query) const;
static td::Result<object_ptr<td_api::ReactionType>> get_reaction_type(td::JsonValue &&value);