mirror of
https://github.com/aiogram/aiogram.git
synced 2026-04-08 16:37:47 +00:00
Telegram API 6.5 (#1111)
* docs: telegram api version bump * feat: add KeyboardButtonRequestUser and KeyboardButtonRequestChat * feat: added the classes UserShared, ChatShared * feat: added the parameter use_independent_chat_permissions * fix: permissions field is mandatory for restrictChatMember * feat: added the field user_chat_id * feat: replaced the fields can_send_media_messages * docs: add comment with replacement * Update types/__init__.py * Added new content types * Fixed types --------- Co-authored-by: Alex Root Junior <jroot.junior@gmail.com>
This commit is contained in:
parent
69c9ecb7e0
commit
598ecdb588
9 changed files with 186 additions and 28 deletions
|
|
@ -43,5 +43,5 @@ __all__ = (
|
||||||
'utils',
|
'utils',
|
||||||
)
|
)
|
||||||
|
|
||||||
__version__ = '2.24'
|
__version__ = '2.25'
|
||||||
__api_version__ = '6.4'
|
__api_version__ = '6.5'
|
||||||
|
|
|
||||||
|
|
@ -1900,16 +1900,20 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
|
||||||
|
|
||||||
return await self.request(api.Methods.UNBAN_CHAT_MEMBER, payload)
|
return await self.request(api.Methods.UNBAN_CHAT_MEMBER, payload)
|
||||||
|
|
||||||
async def restrict_chat_member(self, chat_id: typing.Union[base.Integer, base.String],
|
async def restrict_chat_member(
|
||||||
user_id: base.Integer,
|
self,
|
||||||
permissions: typing.Optional[types.ChatPermissions] = None,
|
chat_id: typing.Union[base.Integer, base.String],
|
||||||
# permissions argument need to be required after removing other `can_*` arguments
|
user_id: base.Integer,
|
||||||
until_date: typing.Union[
|
permissions: typing.Optional[types.ChatPermissions],
|
||||||
base.Integer, datetime.datetime, datetime.timedelta, None] = None,
|
use_independent_chat_permissions: typing.Optional[base.Boolean] = None,
|
||||||
can_send_messages: typing.Optional[base.Boolean] = None,
|
# permissions argument need to be required after removing other `can_*` arguments
|
||||||
can_send_media_messages: typing.Optional[base.Boolean] = None,
|
until_date: typing.Union[
|
||||||
can_send_other_messages: typing.Optional[base.Boolean] = None,
|
base.Integer, datetime.datetime, datetime.timedelta, None] = None,
|
||||||
can_add_web_page_previews: typing.Optional[base.Boolean] = None) -> base.Boolean:
|
can_send_messages: typing.Optional[base.Boolean] = None,
|
||||||
|
can_send_media_messages: typing.Optional[base.Boolean] = None,
|
||||||
|
can_send_other_messages: typing.Optional[base.Boolean] = None,
|
||||||
|
can_add_web_page_previews: typing.Optional[base.Boolean] = None,
|
||||||
|
) -> base.Boolean:
|
||||||
"""
|
"""
|
||||||
Use this method to restrict a user in a supergroup.
|
Use this method to restrict a user in a supergroup.
|
||||||
The bot must be an administrator in the supergroup for this to work and must have the appropriate admin rights.
|
The bot must be an administrator in the supergroup for this to work and must have the appropriate admin rights.
|
||||||
|
|
@ -1923,6 +1927,15 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
|
||||||
:type user_id: :obj:`base.Integer`
|
:type user_id: :obj:`base.Integer`
|
||||||
:param permissions: New user permissions
|
:param permissions: New user permissions
|
||||||
:type permissions: :obj:`ChatPermissions`
|
:type permissions: :obj:`ChatPermissions`
|
||||||
|
:param use_independent_chat_permissions: Pass True if chat
|
||||||
|
permissions are set independently. Otherwise,
|
||||||
|
the can_send_other_messages and can_add_web_page_previews
|
||||||
|
permissions will imply the can_send_messages,
|
||||||
|
can_send_audios, can_send_documents, can_send_photos,
|
||||||
|
can_send_videos, can_send_video_notes, and
|
||||||
|
can_send_voice_notes permissions; the can_send_polls
|
||||||
|
permission will imply the can_send_messages permission.
|
||||||
|
:type use_independent_chat_permissions: :obj:`typing.Optional[base.Boolean]`
|
||||||
:param until_date: Date when restrictions will be lifted for the user, unix time
|
:param until_date: Date when restrictions will be lifted for the user, unix time
|
||||||
:type until_date: :obj:`typing.Optional[base.Integer]`
|
:type until_date: :obj:`typing.Optional[base.Integer]`
|
||||||
:param can_send_messages: Pass True, if the user can send text messages, contacts, locations and venues
|
:param can_send_messages: Pass True, if the user can send text messages, contacts, locations and venues
|
||||||
|
|
@ -2106,8 +2119,12 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
|
||||||
|
|
||||||
return await self.request(api.Methods.UNBAN_CHAT_SENDER_CHAT, payload)
|
return await self.request(api.Methods.UNBAN_CHAT_SENDER_CHAT, payload)
|
||||||
|
|
||||||
async def set_chat_permissions(self, chat_id: typing.Union[base.Integer, base.String],
|
async def set_chat_permissions(
|
||||||
permissions: types.ChatPermissions) -> base.Boolean:
|
self,
|
||||||
|
chat_id: typing.Union[base.Integer, base.String],
|
||||||
|
permissions: types.ChatPermissions,
|
||||||
|
use_independent_chat_permissions: base.Boolean = None,
|
||||||
|
) -> base.Boolean:
|
||||||
"""
|
"""
|
||||||
Use this method to set default chat permissions for all members.
|
Use this method to set default chat permissions for all members.
|
||||||
The bot must be an administrator in the group or a supergroup for this to work and must have the
|
The bot must be an administrator in the group or a supergroup for this to work and must have the
|
||||||
|
|
@ -2117,6 +2134,15 @@ class Bot(BaseBot, DataMixin, ContextInstanceMixin):
|
||||||
|
|
||||||
:param chat_id: Unique identifier for the target chat or username of the target supergroup
|
:param chat_id: Unique identifier for the target chat or username of the target supergroup
|
||||||
:param permissions: New default chat permissions
|
:param permissions: New default chat permissions
|
||||||
|
:param use_independent_chat_permissions: Pass True if chat
|
||||||
|
permissions are set independently. Otherwise,
|
||||||
|
the can_send_other_messages and can_add_web_page_previews
|
||||||
|
permissions will imply the can_send_messages,
|
||||||
|
can_send_audios, can_send_documents, can_send_photos,
|
||||||
|
can_send_videos, can_send_video_notes, and
|
||||||
|
can_send_voice_notes permissions; the can_send_polls
|
||||||
|
permission will imply the can_send_messages permission.
|
||||||
|
:type use_independent_chat_permissions: :obj:`typing.Optional[base.Boolean]`
|
||||||
:return: True on success.
|
:return: True on success.
|
||||||
"""
|
"""
|
||||||
permissions = prepare_arg(permissions)
|
permissions = prepare_arg(permissions)
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ from .chat_member import ChatMember, ChatMemberAdministrator, ChatMemberBanned,
|
||||||
from .chat_member_updated import ChatMemberUpdated
|
from .chat_member_updated import ChatMemberUpdated
|
||||||
from .chat_permissions import ChatPermissions
|
from .chat_permissions import ChatPermissions
|
||||||
from .chat_photo import ChatPhoto
|
from .chat_photo import ChatPhoto
|
||||||
|
from .chat_shared import ChatShared
|
||||||
from .chosen_inline_result import ChosenInlineResult
|
from .chosen_inline_result import ChosenInlineResult
|
||||||
from .contact import Contact
|
from .contact import Contact
|
||||||
from .dice import Dice, DiceEmoji
|
from .dice import Dice, DiceEmoji
|
||||||
|
|
@ -71,7 +72,8 @@ from .photo_size import PhotoSize
|
||||||
from .poll import PollOption, Poll, PollAnswer, PollType
|
from .poll import PollOption, Poll, PollAnswer, PollType
|
||||||
from .pre_checkout_query import PreCheckoutQuery
|
from .pre_checkout_query import PreCheckoutQuery
|
||||||
from .proximity_alert_triggered import ProximityAlertTriggered
|
from .proximity_alert_triggered import ProximityAlertTriggered
|
||||||
from .reply_keyboard import KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove, KeyboardButtonPollType
|
from .reply_keyboard import KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove, KeyboardButtonPollType, \
|
||||||
|
KeyboardButtonRequestChat, KeyboardButtonRequestUser
|
||||||
from .response_parameters import ResponseParameters
|
from .response_parameters import ResponseParameters
|
||||||
from .sent_web_app_message import SentWebAppMessage
|
from .sent_web_app_message import SentWebAppMessage
|
||||||
from .shipping_address import ShippingAddress
|
from .shipping_address import ShippingAddress
|
||||||
|
|
@ -83,6 +85,7 @@ from .successful_payment import SuccessfulPayment
|
||||||
from .update import AllowedUpdates, Update
|
from .update import AllowedUpdates, Update
|
||||||
from .user import User
|
from .user import User
|
||||||
from .user_profile_photos import UserProfilePhotos
|
from .user_profile_photos import UserProfilePhotos
|
||||||
|
from .user_shared import UserShared
|
||||||
from .venue import Venue
|
from .venue import Venue
|
||||||
from .video import Video
|
from .video import Video
|
||||||
from .video_chat_ended import VideoChatEnded
|
from .video_chat_ended import VideoChatEnded
|
||||||
|
|
@ -189,6 +192,8 @@ __all__ = (
|
||||||
'Invoice',
|
'Invoice',
|
||||||
'KeyboardButton',
|
'KeyboardButton',
|
||||||
'KeyboardButtonPollType',
|
'KeyboardButtonPollType',
|
||||||
|
'KeyboardButtonRequestChat',
|
||||||
|
'KeyboardButtonRequestUser',
|
||||||
'LabeledPrice',
|
'LabeledPrice',
|
||||||
'Location',
|
'Location',
|
||||||
'LoginUrl',
|
'LoginUrl',
|
||||||
|
|
@ -252,10 +257,12 @@ __all__ = (
|
||||||
'ForumTopicCreated',
|
'ForumTopicCreated',
|
||||||
'ForumTopicClosed',
|
'ForumTopicClosed',
|
||||||
'ForumTopicReopened',
|
'ForumTopicReopened',
|
||||||
"ForumTopicEdited",
|
'ForumTopicEdited',
|
||||||
"GeneralForumTopicHidden",
|
'GeneralForumTopicHidden',
|
||||||
"GeneralForumTopicUnhidden",
|
'GeneralForumTopicUnhidden',
|
||||||
"WriteAccessAllowed",
|
'WriteAccessAllowed',
|
||||||
|
"ChatShared",
|
||||||
|
"UserShared",
|
||||||
'base',
|
'base',
|
||||||
'fields',
|
'fields',
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ class ChatJoinRequest(base.TelegramObject):
|
||||||
|
|
||||||
chat: Chat = fields.Field(base=Chat)
|
chat: Chat = fields.Field(base=Chat)
|
||||||
from_user: User = fields.Field(alias="from", base=User)
|
from_user: User = fields.Field(alias="from", base=User)
|
||||||
|
user_chat_id: base.Integer = fields.Field()
|
||||||
date: datetime = fields.DateTimeField()
|
date: datetime = fields.DateTimeField()
|
||||||
bio: base.String = fields.Field()
|
bio: base.String = fields.Field()
|
||||||
invite_link: ChatInviteLink = fields.Field(base=ChatInviteLink)
|
invite_link: ChatInviteLink = fields.Field(base=ChatInviteLink)
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,16 @@ class ChatMemberRestricted(ChatMember):
|
||||||
can_pin_messages: base.Boolean = fields.Field()
|
can_pin_messages: base.Boolean = fields.Field()
|
||||||
can_manage_topics: base.Boolean = fields.Field()
|
can_manage_topics: base.Boolean = fields.Field()
|
||||||
can_send_messages: base.Boolean = fields.Field()
|
can_send_messages: base.Boolean = fields.Field()
|
||||||
|
can_send_audios: base.Boolean = fields.Field()
|
||||||
|
can_send_documents: base.Boolean = fields.Field()
|
||||||
|
can_send_photos: base.Boolean = fields.Field()
|
||||||
|
can_send_videos: base.Boolean = fields.Field()
|
||||||
|
can_send_video_notes: base.Boolean = fields.Field()
|
||||||
|
can_send_voice_notes: base.Boolean = fields.Field()
|
||||||
|
|
||||||
|
# warning! field was replaced: https://core.telegram.org/bots/api#february-3-2023
|
||||||
can_send_media_messages: base.Boolean = fields.Field()
|
can_send_media_messages: base.Boolean = fields.Field()
|
||||||
|
|
||||||
can_send_polls: base.Boolean = fields.Field()
|
can_send_polls: base.Boolean = fields.Field()
|
||||||
can_send_other_messages: base.Boolean = fields.Field()
|
can_send_other_messages: base.Boolean = fields.Field()
|
||||||
can_add_web_page_previews: base.Boolean = fields.Field()
|
can_add_web_page_previews: base.Boolean = fields.Field()
|
||||||
|
|
|
||||||
12
aiogram/types/chat_shared.py
Normal file
12
aiogram/types/chat_shared.py
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
from . import base, fields
|
||||||
|
|
||||||
|
|
||||||
|
class ChatShared(base.TelegramObject):
|
||||||
|
"""
|
||||||
|
This object contains information about the chat whose identifier was
|
||||||
|
shared with the bot using a KeyboardButtonRequestChat button.
|
||||||
|
|
||||||
|
https://core.telegram.org/bots/api#chatshared
|
||||||
|
"""
|
||||||
|
request_id: base.Integer = fields.Field()
|
||||||
|
user_id: base.Integer = fields.Field()
|
||||||
|
|
@ -8,6 +8,7 @@ from . import base, fields
|
||||||
from .animation import Animation
|
from .animation import Animation
|
||||||
from .audio import Audio
|
from .audio import Audio
|
||||||
from .chat import Chat, ChatType
|
from .chat import Chat, ChatType
|
||||||
|
from .chat_shared import ChatShared
|
||||||
from .contact import Contact
|
from .contact import Contact
|
||||||
from .dice import Dice
|
from .dice import Dice
|
||||||
from .document import Document
|
from .document import Document
|
||||||
|
|
@ -34,6 +35,7 @@ from .reply_keyboard import ReplyKeyboardMarkup, ReplyKeyboardRemove
|
||||||
from .sticker import Sticker
|
from .sticker import Sticker
|
||||||
from .successful_payment import SuccessfulPayment
|
from .successful_payment import SuccessfulPayment
|
||||||
from .user import User
|
from .user import User
|
||||||
|
from .user_shared import UserShared
|
||||||
from .venue import Venue
|
from .venue import Venue
|
||||||
from .video import Video
|
from .video import Video
|
||||||
from .video_chat_ended import VideoChatEnded
|
from .video_chat_ended import VideoChatEnded
|
||||||
|
|
@ -112,6 +114,8 @@ class Message(base.TelegramObject):
|
||||||
pinned_message: Message = fields.Field(base="Message")
|
pinned_message: Message = fields.Field(base="Message")
|
||||||
invoice: Invoice = fields.Field(base=Invoice)
|
invoice: Invoice = fields.Field(base=Invoice)
|
||||||
successful_payment: SuccessfulPayment = fields.Field(base=SuccessfulPayment)
|
successful_payment: SuccessfulPayment = fields.Field(base=SuccessfulPayment)
|
||||||
|
user_shared: UserShared = fields.Field(base=UserShared)
|
||||||
|
chat_shared: ChatShared = fields.Field(base=ChatShared)
|
||||||
connected_website: base.String = fields.Field()
|
connected_website: base.String = fields.Field()
|
||||||
passport_data: PassportData = fields.Field(base=PassportData)
|
passport_data: PassportData = fields.Field(base=PassportData)
|
||||||
proximity_alert_triggered: ProximityAlertTriggered = fields.Field(base=ProximityAlertTriggered)
|
proximity_alert_triggered: ProximityAlertTriggered = fields.Field(base=ProximityAlertTriggered)
|
||||||
|
|
@ -229,6 +233,10 @@ class Message(base.TelegramObject):
|
||||||
return ContentType.GENERAL_FORUM_TOPIC_UNHIDDEN
|
return ContentType.GENERAL_FORUM_TOPIC_UNHIDDEN
|
||||||
if self.write_access_allowed:
|
if self.write_access_allowed:
|
||||||
return ContentType.WRITE_ACCESS_ALLOWED
|
return ContentType.WRITE_ACCESS_ALLOWED
|
||||||
|
if self.chat_shared:
|
||||||
|
return ContentType.CHAT_SHARED
|
||||||
|
if self.user_shared:
|
||||||
|
return ContentType.USER_SHARED
|
||||||
|
|
||||||
return ContentType.UNKNOWN
|
return ContentType.UNKNOWN
|
||||||
|
|
||||||
|
|
@ -3366,6 +3374,9 @@ class ContentType(helper.Helper):
|
||||||
GENERAL_FORUM_TOPIC_HIDDEN = helper.Item() # general_forum_topic_hidden
|
GENERAL_FORUM_TOPIC_HIDDEN = helper.Item() # general_forum_topic_hidden
|
||||||
GENERAL_FORUM_TOPIC_UNHIDDEN = helper.Item() # general_forum_topic_unhidden
|
GENERAL_FORUM_TOPIC_UNHIDDEN = helper.Item() # general_forum_topic_unhidden
|
||||||
WRITE_ACCESS_ALLOWED = helper.Item() # write_access_allowed
|
WRITE_ACCESS_ALLOWED = helper.Item() # write_access_allowed
|
||||||
|
CHAT_SHARED = helper.Item() # chat_shared
|
||||||
|
USER_SHARED = helper.Item() # user_shared
|
||||||
|
|
||||||
UNKNOWN = helper.Item() # unknown
|
UNKNOWN = helper.Item() # unknown
|
||||||
ANY = helper.Item() # any
|
ANY = helper.Item() # any
|
||||||
|
|
||||||
|
|
@ -3431,18 +3442,20 @@ class ContentTypes(helper.Helper):
|
||||||
DELETE_CHAT_PHOTO = helper.ListItem() # delete_chat_photo
|
DELETE_CHAT_PHOTO = helper.ListItem() # delete_chat_photo
|
||||||
GROUP_CHAT_CREATED = helper.ListItem() # group_chat_created
|
GROUP_CHAT_CREATED = helper.ListItem() # group_chat_created
|
||||||
PASSPORT_DATA = helper.ListItem() # passport_data
|
PASSPORT_DATA = helper.ListItem() # passport_data
|
||||||
WEB_APP_DATA = helper.Item() # web_app_data
|
WEB_APP_DATA = helper.ListItem() # web_app_data
|
||||||
FORUM_TOPIC_CREATED = helper.ListItem() # forum_topic_created
|
FORUM_TOPIC_CREATED = helper.ListItem() # forum_topic_created
|
||||||
FORUM_TOPIC_CLOSED = helper.ListItem() # forum_topic_closed
|
FORUM_TOPIC_CLOSED = helper.ListItem() # forum_topic_closed
|
||||||
FORUM_TOPIC_REOPENED = helper.ListItem() # forum_topic_reopened
|
FORUM_TOPIC_REOPENED = helper.ListItem() # forum_topic_reopened
|
||||||
VIDEO_CHAT_SCHEDULED = helper.Item() # video_chat_scheduled
|
VIDEO_CHAT_SCHEDULED = helper.ListItem() # video_chat_scheduled
|
||||||
VIDEO_CHAT_STARTED = helper.Item() # video_chat_started
|
VIDEO_CHAT_STARTED = helper.ListItem() # video_chat_started
|
||||||
VIDEO_CHAT_ENDED = helper.Item() # video_chat_ended
|
VIDEO_CHAT_ENDED = helper.ListItem() # video_chat_ended
|
||||||
VIDEO_CHAT_PARTICIPANTS_INVITED = helper.Item() # video_chat_participants_invited
|
VIDEO_CHAT_PARTICIPANTS_INVITED = helper.ListItem() # video_chat_participants_invited
|
||||||
FORUM_TOPIC_EDITED = helper.Item() # forum_topic_edited
|
FORUM_TOPIC_EDITED = helper.ListItem() # forum_topic_edited
|
||||||
GENERAL_FORUM_TOPIC_HIDDEN = helper.Item() # general_forum_topic_hidden
|
GENERAL_FORUM_TOPIC_HIDDEN = helper.ListItem() # general_forum_topic_hidden
|
||||||
GENERAL_FORUM_TOPIC_UNHIDDEN = helper.Item() # general_forum_topic_unhidden
|
GENERAL_FORUM_TOPIC_UNHIDDEN = helper.ListItem() # general_forum_topic_unhidden
|
||||||
WRITE_ACCESS_ALLOWED = helper.Item() # write_access_allowed
|
WRITE_ACCESS_ALLOWED = helper.ListItem() # write_access_allowed
|
||||||
|
CHAT_SHARED = helper.ListItem() # chat_shared
|
||||||
|
USER_SHARED = helper.ListItem() # user_shared
|
||||||
|
|
||||||
UNKNOWN = helper.ListItem() # unknown
|
UNKNOWN = helper.ListItem() # unknown
|
||||||
ANY = helper.ListItem() # any
|
ANY = helper.ListItem() # any
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import typing
|
||||||
|
|
||||||
from . import base
|
from . import base
|
||||||
from . import fields
|
from . import fields
|
||||||
|
from .chat_administrator_rights import ChatAdministratorRights
|
||||||
from .web_app_info import WebAppInfo
|
from .web_app_info import WebAppInfo
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -105,6 +106,76 @@ class ReplyKeyboardMarkup(base.TelegramObject):
|
||||||
return self
|
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[ChatAdministratorRights] = None,
|
||||||
|
bot_administrator_rights: typing.Optional[ChatAdministratorRights] = 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):
|
class KeyboardButton(base.TelegramObject):
|
||||||
"""
|
"""
|
||||||
This object represents one button of the reply keyboard.
|
This object represents one button of the reply keyboard.
|
||||||
|
|
@ -118,18 +189,24 @@ class KeyboardButton(base.TelegramObject):
|
||||||
https://core.telegram.org/bots/api#keyboardbutton
|
https://core.telegram.org/bots/api#keyboardbutton
|
||||||
"""
|
"""
|
||||||
text: base.String = fields.Field()
|
text: base.String = fields.Field()
|
||||||
|
request_user: KeyboardButtonRequestUser = fields.Field()
|
||||||
|
request_chat: KeyboardButtonRequestChat = fields.Field()
|
||||||
request_contact: base.Boolean = fields.Field()
|
request_contact: base.Boolean = fields.Field()
|
||||||
request_location: base.Boolean = fields.Field()
|
request_location: base.Boolean = fields.Field()
|
||||||
request_poll: KeyboardButtonPollType = fields.Field()
|
request_poll: KeyboardButtonPollType = fields.Field()
|
||||||
web_app: WebAppInfo = fields.Field(base=WebAppInfo)
|
web_app: WebAppInfo = fields.Field(base=WebAppInfo)
|
||||||
|
|
||||||
def __init__(self, text: base.String,
|
def __init__(self, text: base.String,
|
||||||
|
request_user: typing.Optional[KeyboardButtonRequestUser] = None,
|
||||||
|
request_chat: typing.Optional[KeyboardButtonRequestChat] = None,
|
||||||
request_contact: base.Boolean = None,
|
request_contact: base.Boolean = None,
|
||||||
request_location: base.Boolean = None,
|
request_location: base.Boolean = None,
|
||||||
request_poll: KeyboardButtonPollType = None,
|
request_poll: KeyboardButtonPollType = None,
|
||||||
web_app: WebAppInfo = None,
|
web_app: WebAppInfo = None,
|
||||||
**kwargs):
|
**kwargs):
|
||||||
super(KeyboardButton, self).__init__(text=text,
|
super(KeyboardButton, self).__init__(text=text,
|
||||||
|
request_user=request_user,
|
||||||
|
request_chat=request_chat,
|
||||||
request_contact=request_contact,
|
request_contact=request_contact,
|
||||||
request_location=request_location,
|
request_location=request_location,
|
||||||
request_poll=request_poll,
|
request_poll=request_poll,
|
||||||
|
|
@ -137,6 +214,7 @@ class KeyboardButton(base.TelegramObject):
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ReplyKeyboardRemove(base.TelegramObject):
|
class ReplyKeyboardRemove(base.TelegramObject):
|
||||||
"""
|
"""
|
||||||
Upon receiving a message with this object, Telegram clients will remove the current custom keyboard
|
Upon receiving a message with this object, Telegram clients will remove the current custom keyboard
|
||||||
|
|
|
||||||
12
aiogram/types/user_shared.py
Normal file
12
aiogram/types/user_shared.py
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
from . import base, fields
|
||||||
|
|
||||||
|
|
||||||
|
class UserShared(base.TelegramObject):
|
||||||
|
"""
|
||||||
|
This object contains information about the user whose identifier was
|
||||||
|
shared with the bot using a KeyboardButtonRequestUser button.
|
||||||
|
|
||||||
|
https://core.telegram.org/bots/api#usershared
|
||||||
|
"""
|
||||||
|
request_id: base.Integer = fields.Field()
|
||||||
|
user_id: base.Integer = fields.Field()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue