aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-06-14 00:38:39 +0300
committerlevlam <levlam@telegram.org>2026-06-14 00:38:39 +0300
commit95c86a3090897e8391af5285f9906d76486dae5c (patch)
treec10715d91f5385fce254f961e6ed3c0e2e6acdfe
parent5acfd9f076b2b369f06176fb3e9da393cef29653 (diff)
Add and use Client::get_input_video.
-rw-r--r--telegram-bot-api/Client.cpp56
-rw-r--r--telegram-bot-api/Client.h4
2 files changed, 28 insertions, 32 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index c761fe3..d3a57cc 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -12207,6 +12207,25 @@ td::Result<td_api::object_ptr<td_api::inputAudio>> Client::get_input_audio(
return make_object<td_api::inputAudio>(std::move(input_file), std::move(input_thumbnail), duration, title, performer);
}
+td::Result<td_api::object_ptr<td_api::inputVideo>> Client::get_input_video(
+ const Query *query, const td::JsonObject &object, object_ptr<td_api::InputFile> &&input_file,
+ object_ptr<td_api::inputThumbnail> &&input_thumbnail) const {
+ 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"));
+ TRY_RESULT(cover, object.get_optional_string_field("cover"));
+ TRY_RESULT(start_timestamp, object.get_optional_int_field("start_timestamp"));
+ TRY_RESULT(supports_streaming, object.get_optional_bool_field("supports_streaming"));
+ auto input_cover = get_input_file(query, td::Slice(), cover, false);
+ width = td::clamp(width, 0, MAX_LENGTH);
+ height = td::clamp(height, 0, MAX_LENGTH);
+ duration = td::clamp(duration, 0, MAX_DURATION);
+ start_timestamp = td::clamp(start_timestamp, 0, MAX_DURATION);
+ return make_object<td_api::inputVideo>(std::move(input_file), std::move(input_thumbnail), std::move(input_cover),
+ start_timestamp, td::vector<int32>(), duration, width, height,
+ supports_streaming);
+}
+
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) {
@@ -12327,23 +12346,9 @@ td::Result<td_api::object_ptr<td_api::InputMessageContent>> Client::get_input_me
std::move(caption), show_caption_above_media, nullptr, has_spoiler);
}
if (type == "video") {
- 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"));
- TRY_RESULT(cover, object.get_optional_string_field("cover"));
- TRY_RESULT(start_timestamp, object.get_optional_int_field("start_timestamp"));
- TRY_RESULT(supports_streaming, object.get_optional_bool_field("supports_streaming"));
- auto input_cover = get_input_file(query, td::Slice(), cover, false);
- width = td::clamp(width, 0, MAX_LENGTH);
- height = td::clamp(height, 0, MAX_LENGTH);
- duration = td::clamp(duration, 0, MAX_DURATION);
- start_timestamp = td::clamp(start_timestamp, 0, MAX_DURATION);
-
- return make_object<td_api::inputMessageVideo>(
- make_object<td_api::inputVideo>(std::move(input_file), std::move(input_thumbnail), std::move(input_cover),
- start_timestamp, td::vector<int32>(), duration, width, height,
- supports_streaming),
- std::move(caption), show_caption_above_media, nullptr, has_spoiler);
+ TRY_RESULT(input_video, get_input_video(query, object, std::move(input_file), std::move(input_thumbnail)));
+ return make_object<td_api::inputMessageVideo>(std::move(input_video), std::move(caption), show_caption_above_media,
+ nullptr, has_spoiler);
}
if (type == "animation") {
if (for_album) {
@@ -12436,21 +12441,8 @@ td::Result<td_api::object_ptr<td_api::InputPollMedia>> Client::get_input_poll_me
std::move(input_photo), nullptr, std::move(input_file), td::vector<int32>(), 0, 0));
}
if (type == "video") {
- 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"));
- TRY_RESULT(cover, object.get_optional_string_field("cover"));
- TRY_RESULT(start_timestamp, object.get_optional_int_field("start_timestamp"));
- TRY_RESULT(supports_streaming, object.get_optional_bool_field("supports_streaming"));
- auto input_cover = get_input_file(query, td::Slice(), cover, false);
- width = td::clamp(width, 0, MAX_LENGTH);
- height = td::clamp(height, 0, MAX_LENGTH);
- duration = td::clamp(duration, 0, MAX_DURATION);
- start_timestamp = td::clamp(start_timestamp, 0, MAX_DURATION);
-
- return make_object<td_api::inputPollMediaVideo>(make_object<td_api::inputVideo>(
- std::move(input_file), std::move(input_thumbnail), std::move(input_cover), start_timestamp, td::vector<int32>(),
- duration, width, height, supports_streaming));
+ TRY_RESULT(input_video, get_input_video(query, object, std::move(input_file), std::move(input_thumbnail)));
+ return make_object<td_api::inputPollMediaVideo>(std::move(input_video));
}
if (type == "animation") {
TRY_RESULT(input_animation, get_input_animation(object, std::move(input_file), std::move(input_thumbnail)));
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index 76393f7..84352ab 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -681,6 +681,10 @@ class Client final : public WebhookActor::Callback {
const td::JsonObject &object, object_ptr<td_api::InputFile> &&input_file,
object_ptr<td_api::inputThumbnail> &&input_thumbnail);
+ td::Result<object_ptr<td_api::inputVideo>> get_input_video(
+ const Query *query, const td::JsonObject &object, object_ptr<td_api::InputFile> &&input_file,
+ object_ptr<td_api::inputThumbnail> &&input_thumbnail) const;
+
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;