aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-06-14 00:27:11 +0300
committerlevlam <levlam@telegram.org>2026-06-14 00:27:11 +0300
commit6670225cc5bc6b1a91c76ecbe44289c2e2cb32d1 (patch)
tree25591f7ee6ea103fa9838a8ed53e03adc6e8e493
parent0a9e5696ba149c99bedf972f040d2e28776a8a4f (diff)
Add and use Client::get_input_animation.
-rw-r--r--telegram-bot-api/Client.cpp36
-rw-r--r--telegram-bot-api/Client.h4
2 files changed, 22 insertions, 18 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index 068a505..ee90638 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -12184,6 +12184,19 @@ td::Result<td_api::object_ptr<td_api::chatPermissions>> Client::get_chat_permiss
can_edit_tag, can_change_info, can_invite_users, can_pin_messages, can_manage_topics);
}
+td::Result<td_api::object_ptr<td_api::inputAnimation>> Client::get_input_animation(
+ const td::JsonObject &object, object_ptr<td_api::InputFile> &&input_file,
+ object_ptr<td_api::inputThumbnail> &&input_thumbnail) {
+ TRY_RESULT(width, object.get_optional_int_field("width"));
+ TRY_RESULT(height, object.get_optional_int_field("height"));
+ TRY_RESULT(duration, object.get_optional_int_field("duration"));
+ width = td::clamp(width, 0, MAX_LENGTH);
+ height = td::clamp(height, 0, MAX_LENGTH);
+ duration = td::clamp(duration, 0, MAX_DURATION);
+ return make_object<td_api::inputAnimation>(std::move(input_file), std::move(input_thumbnail), td::vector<int32>(),
+ duration, width, height);
+}
+
td::Result<td_api::object_ptr<td_api::inputChecklistTask>> Client::get_input_checklist_task(
td::JsonValue &&input_task) const {
if (input_task.type() != td::JsonValue::Type::Object) {
@@ -12326,16 +12339,9 @@ td::Result<td_api::object_ptr<td_api::InputMessageContent>> Client::get_input_me
if (for_album) {
return td::Status::Error(PSLICE() << "type \"" << type << "\" can't be used in sendMediaGroup");
}
- TRY_RESULT(width, object.get_optional_int_field("width"));
- TRY_RESULT(height, object.get_optional_int_field("height"));
- TRY_RESULT(duration, object.get_optional_int_field("duration"));
- width = td::clamp(width, 0, MAX_LENGTH);
- height = td::clamp(height, 0, MAX_LENGTH);
- duration = td::clamp(duration, 0, MAX_DURATION);
- return make_object<td_api::inputMessageAnimation>(
- make_object<td_api::inputAnimation>(std::move(input_file), std::move(input_thumbnail), td::vector<int32>(),
- duration, width, height),
- std::move(caption), show_caption_above_media, has_spoiler);
+ TRY_RESULT(input_animation, get_input_animation(object, std::move(input_file), std::move(input_thumbnail)));
+ return make_object<td_api::inputMessageAnimation>(std::move(input_animation), std::move(caption),
+ show_caption_above_media, has_spoiler);
}
if (type == "audio") {
TRY_RESULT(duration, object.get_optional_int_field("duration"));
@@ -12442,14 +12448,8 @@ td::Result<td_api::object_ptr<td_api::InputPollMedia>> Client::get_input_poll_me
duration, width, height, supports_streaming));
}
if (type == "animation") {
- TRY_RESULT(width, object.get_optional_int_field("width"));
- TRY_RESULT(height, object.get_optional_int_field("height"));
- TRY_RESULT(duration, object.get_optional_int_field("duration"));
- width = td::clamp(width, 0, MAX_LENGTH);
- height = td::clamp(height, 0, MAX_LENGTH);
- duration = td::clamp(duration, 0, MAX_DURATION);
- return make_object<td_api::inputPollMediaAnimation>(make_object<td_api::inputAnimation>(
- std::move(input_file), std::move(input_thumbnail), td::vector<int32>(), duration, width, height));
+ TRY_RESULT(input_animation, get_input_animation(object, std::move(input_file), std::move(input_thumbnail)));
+ return make_object<td_api::inputPollMediaAnimation>(std::move(input_animation));
}
if (for_option ? type != "sticker" : type != "audio" && type != "document") {
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index bf60e99..5f74874 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -673,6 +673,10 @@ class Client final : public WebhookActor::Callback {
static td::Result<object_ptr<td_api::chatPermissions>> get_chat_permissions(const Query *query, bool &allow_legacy,
bool use_independent_chat_permissions);
+ static td::Result<object_ptr<td_api::inputAnimation>> get_input_animation(
+ const td::JsonObject &object, object_ptr<td_api::InputFile> &&input_file,
+ object_ptr<td_api::inputThumbnail> &&input_thumbnail);
+
td::Result<object_ptr<td_api::inputChecklistTask>> get_input_checklist_task(td::JsonValue &&input_task) const;
td::Result<td::vector<object_ptr<td_api::inputChecklistTask>>> get_input_checklist_tasks(td::JsonValue &&value) const;