From 8f33f96e8c91545eb35a1e69604d0a97b5b513ef Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 24 Nov 2021 13:05:56 +0300 Subject: [PATCH] Allow tg:user URLs in inline keyboard buttons. --- td/telegram/ReplyMarkup.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/td/telegram/ReplyMarkup.cpp b/td/telegram/ReplyMarkup.cpp index cd1f22ce6..b7d3cb441 100644 --- a/td/telegram/ReplyMarkup.cpp +++ b/td/telegram/ReplyMarkup.cpp @@ -444,6 +444,12 @@ static Result get_inline_keyboard_button(tl_object_ptr(button->type_); + auto user_id = LinkManager::get_link_user_id(button_type->url_); + if (user_id.is_valid()) { + current_button.type = InlineKeyboardButton::Type::User; + current_button.user_id = user_id; + break; + } auto r_url = LinkManager::check_link(button_type->url_); if (r_url.is_error()) { return Status::Error(400, "Inline keyboard button URL is invalid"); @@ -489,6 +495,10 @@ static Result get_inline_keyboard_button(tl_object_ptr(button->type_); + auto user_id = LinkManager::get_link_user_id(button_type->url_); + if (user_id.is_valid()) { + return Status::Error(400, "Link to a user can't be used in login URL buttons"); + } auto r_url = LinkManager::check_link(button_type->url_); if (r_url.is_error()) { return Status::Error(400, "Inline keyboard button login URL is invalid");