Add support for both mention buttons (#3680)

This commit is contained in:
Shrimadhav U K 2022-03-02 17:29:40 +05:30 committed by GitHub
parent 26109d5916
commit 503d0859ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -56,9 +56,9 @@ class Button:
_tl.KeyboardButtonCallback,
_tl.KeyboardButtonGame,
_tl.KeyboardButtonSwitchInline,
_tl.KeyboardButtonUserProfile,
_tl.KeyboardButtonUrl,
_tl.InputKeyboardButtonUrlAuth
_tl.InputKeyboardButtonUrlAuth,
_tl.InputKeyboardButtonUserProfile
))
@staticmethod
@ -170,11 +170,18 @@ class Button:
)
@staticmethod
def mention(text, input_entity=None):
def inline_mention(text, input_entity=None):
"""
Creates a new inline button linked to the profile of user.
This will only work in Telegram versions released after December 7, 2021.
Older clients will display unsupported message.
Args:
text:
Label text on the button
input_entity:
Input entity of :tl:User to use for profile button.
By default, this is the logged in user (itself), although
@ -185,11 +192,47 @@ class Button:
For now, you cannot use ID or username for this argument.
If you want to use different user, you must manually use
`client.get_input_entity() <telethon.client.users.UserMethods.get_input_entity>`.
"""
return _tl.InputKeyboardButtonUserProfile(
text,
utils.get_input_user(input_entity or _tl.InputUserSelf())
)
@staticmethod
def mention(text, input_entity=None):
"""
Creates a text mentioning the user.
This will only work in Telegram versions (only Telegram Desktop and Telegram X) released after December 7, 2021.
Older clients will display unsupported message.
Args:
text:
Label text on the button
input_entity:
Input entity of :tl:User to use for profile button.
By default, this is the logged in user (itself), although
you may pass a different input peer.
.. note::
For now, you cannot use ID or username for this argument.
If you want to use different user, you must manually use
`client.get_input_entity() <telethon.client.users.UserMethods.get_input_entity>`.
"""
return types.KeyboardButtonUserProfile(
text,
(
utils.get_input_user(
input_entity or _tl.InputUserSelf()
).id
)
)
@classmethod
@ -413,4 +456,5 @@ def build_reply_markup(
return _tl.ReplyInlineMarkup(rows)
# elif is_normal:
return _tl.ReplyKeyboardMarkup(
rows, resize=resize, single_use=single_use, selective=selective)
rows, resize=resize, single_use=single_use, selective=selective)