diff options
| author | levlam <levlam@telegram.org> | 2026-06-14 00:44:41 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2026-06-14 00:44:41 +0300 |
| commit | 4834b964b3966f5c148f3f6980fab5c48df30f2e (patch) | |
| tree | 86317719eb642cde0555e6d74f6a5e1727b5ab72 | |
| parent | 95c86a3090897e8391af5285f9906d76486dae5c (diff) | |
Add and use Client::get_input_photo.
| -rw-r--r-- | telegram-bot-api/Client.cpp | 50 | ||||
| -rw-r--r-- | telegram-bot-api/Client.h | 4 |
2 files changed, 27 insertions, 27 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index d3a57cc..475166c 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -12207,6 +12207,22 @@ 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::inputPhoto>> Client::get_input_photo(const Query *query, + const td::JsonObject &object, + object_ptr<td_api::InputFile> &&input_file, + bool is_live) const { + if (is_live) { + TRY_RESULT(photo, object.get_optional_string_field("photo")); + auto input_photo = get_input_file(query, td::Slice(), photo, false); + if (input_photo == nullptr) { + return td::Status::Error("photo not found"); + } + return make_object<td_api::inputPhoto>(std::move(input_photo), nullptr, std::move(input_file), td::vector<int32>(), + 0, 0); + } + return make_object<td_api::inputPhoto>(std::move(input_file), nullptr, nullptr, td::vector<int32>(), 0, 0); +} + 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 { @@ -12329,21 +12345,10 @@ td::Result<td_api::object_ptr<td_api::InputMessageContent>> Client::get_input_me } TRY_RESULT(input_thumbnail, get_input_thumbnail(query, object, true)); - if (type == "photo") { - return make_object<td_api::inputMessagePhoto>( - make_object<td_api::inputPhoto>(std::move(input_file), nullptr, nullptr, td::vector<int32>(), 0, 0), - std::move(caption), show_caption_above_media, nullptr, has_spoiler); - } - if (type == "live_photo") { - TRY_RESULT(photo, object.get_optional_string_field("photo")); - auto input_photo = get_input_file(query, td::Slice(), photo, false); - if (input_photo == nullptr) { - return td::Status::Error("photo not found"); - } - return make_object<td_api::inputMessagePhoto>( - make_object<td_api::inputPhoto>(std::move(input_photo), nullptr, std::move(input_file), td::vector<int32>(), 0, - 0), - std::move(caption), show_caption_above_media, nullptr, has_spoiler); + if (type == "photo" || type == "live_photo") { + TRY_RESULT(input_photo, get_input_photo(query, object, std::move(input_file), type == "live_photo")); + return make_object<td_api::inputMessagePhoto>(std::move(input_photo), std::move(caption), show_caption_above_media, + nullptr, has_spoiler); } if (type == "video") { TRY_RESULT(input_video, get_input_video(query, object, std::move(input_file), std::move(input_thumbnail))); @@ -12427,18 +12432,9 @@ td::Result<td_api::object_ptr<td_api::InputPollMedia>> Client::get_input_poll_me } TRY_RESULT(input_thumbnail, get_input_thumbnail(query, object, true)); - if (type == "photo") { - return make_object<td_api::inputPollMediaPhoto>( - make_object<td_api::inputPhoto>(std::move(input_file), nullptr, nullptr, td::vector<int32>(), 0, 0)); - } - if (type == "live_photo") { - TRY_RESULT(photo, object.get_optional_string_field("photo")); - auto input_photo = get_input_file(query, td::Slice(), photo, false); - if (input_photo == nullptr) { - return td::Status::Error("photo not found"); - } - return make_object<td_api::inputPollMediaPhoto>(make_object<td_api::inputPhoto>( - std::move(input_photo), nullptr, std::move(input_file), td::vector<int32>(), 0, 0)); + if (type == "photo" || type == "live_photo") { + TRY_RESULT(input_photo, get_input_photo(query, object, std::move(input_file), type == "live_photo")); + return make_object<td_api::inputPollMediaPhoto>(std::move(input_photo)); } if (type == "video") { TRY_RESULT(input_video, get_input_video(query, object, std::move(input_file), std::move(input_thumbnail))); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 84352ab..e03e559 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::inputPhoto>> get_input_photo(const Query *query, const td::JsonObject &object, + object_ptr<td_api::InputFile> &&input_file, + bool is_live) const; + 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; |
