aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-05-05 00:14:09 +0300
committerlevlam <levlam@telegram.org>2026-05-05 00:14:09 +0300
commit4379a625340164cc3859e042245fffcb920d857b (patch)
treed72bba6b15a39a606853cbd0a218a6387183adb0
parent4d5a44693667b0264c4c95d1889b33a39661137f (diff)
Add and use Client::get_input_thumbnail.
-rw-r--r--telegram-bot-api/Client.cpp52
-rw-r--r--telegram-bot-api/Client.h3
2 files changed, 32 insertions, 23 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index 7a1bd5c..ec518a7 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -10025,6 +10025,33 @@ td_api::object_ptr<td_api::inputThumbnail> Client::get_input_thumbnail(const Que
return make_object<td_api::inputThumbnail>(std::move(input_file), 0, 0);
}
+td::Result<td_api::object_ptr<td_api::inputThumbnail>> Client::get_input_thumbnail(const Query *query,
+ const td::JsonObject &object,
+ bool allow_legacy) const {
+ TRY_RESULT(thumbnail, object.get_optional_string_field("thumbnail"));
+ if (allow_legacy) {
+ if (thumbnail.empty()) {
+ TRY_RESULT_ASSIGN(thumbnail, object.get_optional_string_field("thumb"));
+ }
+ auto thumbnail_input_file = get_input_file(query, td::Slice(), thumbnail, true);
+ if (thumbnail_input_file == nullptr) {
+ thumbnail_input_file = get_input_file(query, "thumbnail", td::Slice(), true);
+ if (thumbnail_input_file == nullptr) {
+ thumbnail_input_file = get_input_file(query, "thumb", td::Slice(), true);
+ }
+ }
+ if (thumbnail_input_file != nullptr) {
+ return make_object<td_api::inputThumbnail>(std::move(thumbnail_input_file), 0, 0);
+ }
+ } else {
+ auto thumbnail_input_file = get_input_file(query, "thumbnail", thumbnail, true);
+ if (thumbnail_input_file != nullptr) {
+ return make_object<td_api::inputThumbnail>(std::move(thumbnail_input_file), 0, 0);
+ }
+ }
+ return nullptr;
+}
+
td::Result<td_api::object_ptr<td_api::InputMessageContent>> Client::get_input_message_content(
td::JsonValue &input_message_content, bool is_input_message_content_required) {
CHECK(input_message_content.type() == td::JsonValue::Type::Object);
@@ -11636,22 +11663,7 @@ td::Result<td_api::object_ptr<td_api::InputMessageContent>> Client::get_input_me
if (input_file == nullptr) {
return td::Status::Error("media not found");
}
-
- TRY_RESULT(thumbnail, object.get_optional_string_field("thumbnail"));
- if (thumbnail.empty()) {
- TRY_RESULT_ASSIGN(thumbnail, object.get_optional_string_field("thumb"));
- }
- auto thumbnail_input_file = get_input_file(query, td::Slice(), thumbnail, true);
- if (thumbnail_input_file == nullptr) {
- thumbnail_input_file = get_input_file(query, "thumbnail", td::Slice(), true);
- if (thumbnail_input_file == nullptr) {
- thumbnail_input_file = get_input_file(query, "thumb", td::Slice(), true);
- }
- }
- object_ptr<td_api::inputThumbnail> input_thumbnail;
- if (thumbnail_input_file != nullptr) {
- input_thumbnail = make_object<td_api::inputThumbnail>(std::move(thumbnail_input_file), 0, 0);
- }
+ TRY_RESULT(input_thumbnail, get_input_thumbnail(query, object, true));
TRY_RESULT(type, object.get_required_string_field("type"));
if (type == "photo") {
@@ -11770,13 +11782,7 @@ td::Result<td_api::object_ptr<td_api::inputPaidMedia>> Client::get_input_paid_me
if (input_file == nullptr) {
return td::Status::Error("media not found");
}
-
- object_ptr<td_api::inputThumbnail> input_thumbnail;
- TRY_RESULT(thumbnail, object.get_optional_string_field("thumbnail"));
- auto thumbnail_input_file = get_input_file(query, "thumbnail", thumbnail, true);
- if (thumbnail_input_file != nullptr) {
- input_thumbnail = make_object<td_api::inputThumbnail>(std::move(thumbnail_input_file), 0, 0);
- }
+ TRY_RESULT(input_thumbnail, get_input_thumbnail(query, object, true));
TRY_RESULT(width, object.get_optional_int_field("width"));
TRY_RESULT(height, object.get_optional_int_field("height"));
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index 06e21f8..d0b9a72 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -542,6 +542,9 @@ class Client final : public WebhookActor::Callback {
object_ptr<td_api::inputThumbnail> get_input_thumbnail(const Query *query) const;
+ td::Result<object_ptr<td_api::inputThumbnail>> get_input_thumbnail(const Query *query, const td::JsonObject &object,
+ bool allow_legacy = false) const;
+
static td::Result<object_ptr<td_api::inlineQueryResultsButton>> get_inline_query_results_button(
td::JsonValue &&value);