mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
feat: add KeyboardButtonRequestUser and KeyboardButtonRequestChat
This commit is contained in:
parent
939e520287
commit
c2dadc5635
1 changed files with 78 additions and 0 deletions
|
|
@ -2,6 +2,7 @@ import typing
|
|||
|
||||
from . import base
|
||||
from . import fields
|
||||
from .chat_administrator_rights import ChatAdministratorRights
|
||||
from .web_app_info import WebAppInfo
|
||||
|
||||
|
||||
|
|
@ -105,6 +106,76 @@ class ReplyKeyboardMarkup(base.TelegramObject):
|
|||
return self
|
||||
|
||||
|
||||
|
||||
class KeyboardButtonRequestUser(base.TelegramObject):
|
||||
"""
|
||||
This object defines the criteria used to request a suitable user.
|
||||
The identifier of the selected user will be shared with the bot when
|
||||
the corresponding button is pressed.
|
||||
|
||||
https://core.telegram.org/bots/api#keyboardbuttonrequestuser
|
||||
"""
|
||||
request_id: base.Integer = fields.Field()
|
||||
user_is_bot: base.Boolean = fields.Field()
|
||||
user_is_premium: base.Boolean = fields.Field()
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
request_id: base.Integer,
|
||||
user_is_bot: typing.Optional[base.Boolean] = None,
|
||||
user_is_premium: typing.Optional[base.Boolean] = None,
|
||||
**kwargs,
|
||||
):
|
||||
super().__init__(
|
||||
request_id=request_id,
|
||||
user_is_bot=user_is_bot,
|
||||
user_is_premium=user_is_premium,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
class KeyboardButtonRequestChat(base.TelegramObject):
|
||||
"""
|
||||
This object defines the criteria used to request a suitable chat.
|
||||
The identifier of the selected chat will be shared with the bot when
|
||||
the corresponding button is pressed.
|
||||
|
||||
https://core.telegram.org/bots/api#keyboardbuttonrequestchat
|
||||
"""
|
||||
request_id: base.Integer = fields.Field()
|
||||
chat_is_channel: base.Boolean = fields.Field()
|
||||
chat_is_forum: base.Boolean = fields.Field()
|
||||
chat_has_username: base.Boolean = fields.Field()
|
||||
chat_is_created: base.Boolean = fields.Field()
|
||||
user_administrator_rights: ChatAdministratorRights = fields.Field()
|
||||
bot_administrator_rights: ChatAdministratorRights = fields.Field()
|
||||
bot_is_member: base.Boolean = fields.Field()
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
request_id: base.Integer,
|
||||
chat_is_channel: base.Boolean,
|
||||
chat_is_forum: typing.Optional[base.Boolean] = None,
|
||||
chat_has_username: typing.Optional[base.Boolean] = None,
|
||||
chat_is_created: typing.Optional[base.Boolean] = None,
|
||||
user_administrator_rights: typing.Optional[base.Boolean] = None,
|
||||
bot_administrator_rights: typing.Optional[base.Boolean] = None,
|
||||
bot_is_member: typing.Optional[base.Boolean] = None,
|
||||
**kwargs,
|
||||
):
|
||||
super().__init__(
|
||||
request_id=request_id,
|
||||
chat_is_channel=chat_is_channel,
|
||||
chat_is_forum=chat_is_forum,
|
||||
chat_has_username=chat_has_username,
|
||||
chat_is_created=chat_is_created,
|
||||
user_administrator_rights=user_administrator_rights,
|
||||
bot_administrator_rights=bot_administrator_rights,
|
||||
bot_is_member=bot_is_member,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
class KeyboardButton(base.TelegramObject):
|
||||
"""
|
||||
This object represents one button of the reply keyboard.
|
||||
|
|
@ -118,18 +189,24 @@ class KeyboardButton(base.TelegramObject):
|
|||
https://core.telegram.org/bots/api#keyboardbutton
|
||||
"""
|
||||
text: base.String = fields.Field()
|
||||
request_user: KeyboardButtonRequestUser = fields.Field()
|
||||
request_chat: KeyboardButtonRequestUser = fields.Field()
|
||||
request_contact: base.Boolean = fields.Field()
|
||||
request_location: base.Boolean = fields.Field()
|
||||
request_poll: KeyboardButtonPollType = fields.Field()
|
||||
web_app: WebAppInfo = fields.Field(base=WebAppInfo)
|
||||
|
||||
def __init__(self, text: base.String,
|
||||
request_user: typing.Optional[KeyboardButtonRequestUser] = None,
|
||||
request_chat: typing.Optional[KeyboardButtonRequestUser] = None,
|
||||
request_contact: base.Boolean = None,
|
||||
request_location: base.Boolean = None,
|
||||
request_poll: KeyboardButtonPollType = None,
|
||||
web_app: WebAppInfo = None,
|
||||
**kwargs):
|
||||
super(KeyboardButton, self).__init__(text=text,
|
||||
request_user=request_user,
|
||||
request_chat=request_chat,
|
||||
request_contact=request_contact,
|
||||
request_location=request_location,
|
||||
request_poll=request_poll,
|
||||
|
|
@ -137,6 +214,7 @@ class KeyboardButton(base.TelegramObject):
|
|||
**kwargs)
|
||||
|
||||
|
||||
|
||||
class ReplyKeyboardRemove(base.TelegramObject):
|
||||
"""
|
||||
Upon receiving a message with this object, Telegram clients will remove the current custom keyboard
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue