From 6670225cc5bc6b1a91c76ecbe44289c2e2cb32d1 Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 14 Jun 2026 00:27:11 +0300 Subject: Add and use Client::get_input_animation. --- telegram-bot-api/Client.cpp | 36 ++++++++++++++++++------------------ telegram-bot-api/Client.h | 4 ++++ 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> Client::get_chat_permiss can_edit_tag, can_change_info, can_invite_users, can_pin_messages, can_manage_topics); } +td::Result> Client::get_input_animation( + const td::JsonObject &object, object_ptr &&input_file, + object_ptr &&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(std::move(input_file), std::move(input_thumbnail), td::vector(), + duration, width, height); +} + td::Result> Client::get_input_checklist_task( td::JsonValue &&input_task) const { if (input_task.type() != td::JsonValue::Type::Object) { @@ -12326,16 +12339,9 @@ td::Result> 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( - make_object(std::move(input_file), std::move(input_thumbnail), td::vector(), - 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(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> 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(make_object( - std::move(input_file), std::move(input_thumbnail), td::vector(), duration, width, height)); + TRY_RESULT(input_animation, get_input_animation(object, std::move(input_file), std::move(input_thumbnail))); + return make_object(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> get_chat_permissions(const Query *query, bool &allow_legacy, bool use_independent_chat_permissions); + static td::Result> get_input_animation( + const td::JsonObject &object, object_ptr &&input_file, + object_ptr &&input_thumbnail); + td::Result> get_input_checklist_task(td::JsonValue &&input_task) const; td::Result>> get_input_checklist_tasks(td::JsonValue &&value) const; -- cgit v1.2.3