o
    "h#                    @   s  d Z ddlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZm Z m!Z!m"Z" ddl#m$Z$ ddl#m%Z& ddl#m'Z( erddlm)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZE G dd deZFG dd deFZGdS )z?This module contains an object that represents a Telegram Chat.    N)Sequence)escape)TYPE_CHECKINGFinalOptionalUnion)	constants)ChatPermissions)
ForumTopic)
MenuButton)ReactionType)TelegramObject)enum)DEFAULT_NONE)CorrectOptionID	FileInputJSONDictODVInputReplyMarkup
TimePeriod)escape_markdown)mention_html)mention_markdown)	AnimationAudioChatInviteLink
ChatMemberContactDocumentGiftInlineKeyboardMarkupInputChecklistInputMediaAudioInputMediaDocumentInputMediaPhotoInputMediaVideoInputPaidMediaInputPollOptionLabeledPriceLinkPreviewOptionsLocationMessageMessageEntity	MessageId	PhotoSizeReplyParametersStickerUserChatBoostsVenueVideo	VideoNoteVoicec                J       s*  e Zd ZU dZdZ					dvdddededee dee d	ee d
ee dee dee	 f fddZ
ejjZee ed< 	 ejjZee ed< 	 ejjZee ed< 	 ejjZee ed< 	 ejjZee ed< 	 edee fddZedee fddZedee fddZdwdee defddZdwdee defddZdwdee defd d!Zeeeedd"d#ee d$ee d%ee d&ee dee	 defd'd(Zeeeedd"d#ee d$ee d%ee d&ee dee	 ded) fd*d+Z eeeedd"d#ee d$ee d%ee d&ee dee	 defd,d-Z!eeeedd"d.ed#ee d$ee d%ee d&ee dee	 dd/fd0d1Z"		dxeeeedd"d.ed2ee d3ee#ee$j%f  d#ee d$ee d%ee d&ee dee	 defd4d5Z&eeeedd"d6ed#ee d$ee d%ee d&ee dee	 defd7d8Z'eeeedd"d9e#eef d#ee d$ee d%ee d&ee dee	 defd:d;Z(eeeedd"d6ed#ee d$ee d%ee d&ee dee	 defd<d=Z)eeeedd"d9e#eef d#ee d$ee d%ee d&ee dee	 defd>d?Z*	dweeeedd"d.ed@ee d#ee d$ee d%ee d&ee dee	 defdAdBZ+															dyeeeedd"d.edCee dDee dEee dFee dGee dHee dIee dJee dKee dLee dMee dNee dOee dPee dQee d#ee d$ee d%ee d&ee dee	 def,dRdSZ,		dxeeeedd"d.edTe-d3ee#ee$j%f  dUee d#ee d$ee d%ee d&ee dee	 defdVdWZ.	dweeeedd"dTe-dUee d#ee d$ee d%ee d&ee dee	 defdXdYZ/eeeedd"d.edZed#ee d$ee d%ee d&ee dee	 defd[d\Z0eeeedd"d]e1d#ee d$ee d%ee d&ee dee	 defd^d_Z2eeeedd"d#ee d$ee d%ee d&ee dee	 defd`daZ3eeeedd"ded#ee d$ee d%ee d&ee dee	 defdbdcZ4	dweeeedd"ddee d#ee d$ee d%ee d&ee dee	 defdedfZ5edfeeeedd"dgedhee diee d#ee d$ee d%ee d&ee dee	 defdjdkZ6		dxeeeedd"dgee diee d#ee d$ee d%ee d&ee dee	 defdldmZ7eeeedd"d#ee d$ee d%ee d&ee dee	 defdndoZ8eeddededdddfdedeeeeddpdqedree dhee dsee9 dtee:du  dvee dwee dxedy dzed{ diee d|ee d}ee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf*ddZ;eeeedd"dged#ee d$ee d%ee d&ee dee	 defddZ<eeeedd"de:e d#ee d$ee d%ee d&ee dee	 defddZ=eedddddfdeeeeeddedd
de:e#d  dhee dvee dwee dzed{ diee d|ee d}ee d~ee dee d#ee d$ee d%ee d&ee dee	 dee dree dee:du  ded f&ddZ>		dxeeeedd"dedwee diee d#ee d$ee d%ee d&ee dee	 defddZ?e?Z@	 dedededddddddfdedeeeeddd]e#e1df dee dhee dsee9 dree dee:du  dvee dwee dee dzed{ diee d|ee d}ee dee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf.ddZAdddeddedddddfdedeeeedddee d	ee d
ee dhee dsee9 dee dvee dwee dzed{ diee d|ee d}ee d~ee dee ded d#ee d$ee d%ee d&ee dee	 ddf*ddZBddddedededdddddfdedeeeeddde#e1df deeC dee dee dee dhee dsee9 dree dee:du  dvee dwee dee1 dzed{ diee d|ee d}ee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf2ddZDdededdeddddddfdedeeeeddde#e1df dee dhee dsee9 dree dee dee:du  dvee dwee dee1 dzed{ diee d|ee d}ee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf.ddZEededdfdeeeeedddiedddhee dsed dvee dzed{ d|ee d~ee dee d#ee d$ee d%ee d&ee dee	 ddfddZFeddedddddf	deeeeedddhee dsee9 dee dvee dwee dzed{ diee d|ee d}ee d~ee dee d#ee d$ee d%ee d&ee dee	 ddf"ddZGededddddfdeeeeedddedhee dsed dvee dwee dzed{ diee d|ee d}ee d~ee dee d#ee d$ee d%ee d&ee dee	 ddf"ddZHdddddddddddeddddddeddddfdeeeeedddeddededede:d dee dee dee dee dee dee dee dee dee dee dee dhee dsed dee#eeIf  dee dee dee dee:e  dvee dwee dzed{ d|ee d}ee d~ee dee d#ee d$ee d%ee d&ee dee	 ddfHddτZJddedddddedddddfdedeeeeddМdee dee dhee dsee9 deeC dee dee dee dvee dwee dzed{ diee d|ee d}ee d~ee dee ded d#ee d$ee d%ee d&ee dee	 ddf.ddڄZKddddeeddeddddddddfdedeeeeddde#e1df deeC dee dee dee dree dhee dsee9 dee:du  dvee dwee dee dee1 dzed{ diee d|ee d}ee dee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf6ddZLededdddddf	deeeeeddde#e1df dhee dsee9 dvee dwee dee dzed{ diee d|ee d}ee d~ee dee d#ee d$ee d%ee d&ee dee	 ddf$ddZMdddddeddddedddddfdedeeeedddee dee dee dee dee dhee dsee9 dee dee dee dvee dwee dzed{ diee d|ee d}ee d~ee dee ded d#ee d$ee d%ee d&ee dee	 ddf2ddZNddedddeddeddddddddddfdedeeeeddde#e1df deeC dee dhee dsee9 dee dee dree dee dee:du  dvee dwee dee dee1 dzed{ diee d|ee d}ee dee dee1 dee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf<ddZOddededdddddfdedeeeeddde#e1df deeC dee dhee dsee9 dvee dwee dee1 dzed{ diee d|ee d}ee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf*ddZPddedededddddfdedeeeeddde#e1df deeC dee dhee dsee9 dree dee:du  dvee dwee dzed{ diee d|ee d}ee d~ee dee dee d#ee d$ee d%ee d&ee dee	 ddf,ddZQdddddeddedddedddedddfdeeeeeddded e:e#edf  dKee dee dee deeR dee dhee dsee9 dee dee deeC dee#ee$j%f  d	ee:du  dvee dwee dzed{ diee d
ee dee:du  d|ee d}ee d~ee dee d#ee d$ee d%ee d&ee dee	 ddf<ddZSdedededddddfdeeeeeddde#eef dgedee dree dee:du  dhee dsee9 dvee dwee dzed{ dee d}ee dee d~ee dee d#ee d$ee d%ee d&ee dee	 ddf*ddZTdedededddddfdeeeeeddd9e#eef dgedee dree dee:du  dhee dsee9 dvee dwee dzed{ dee d}ee dee d~ee dee d#ee d$ee d%ee d&ee dee	 ddf*ddZUeeddfeeeedd"de#eef de:e dhee dvee dwee dee d#ee d$ee d%ee d&ee dee	 ded fddZVeeddfeeeedd"d9e#eef de:e dhee dvee dwee dee d#ee d$ee d%ee d&ee dee	 ded fddZWeeddfeeeedd"de#eef dgedhee dvee dwee dee d#ee d$ee d%ee d&ee dee	 ddfddZXeeddfeeeedd"d9e#eef dgedhee dvee dwee dee d#ee d$ee d%ee d&ee dee	 ddfddZYeedfeeeedd"de#eef de:e dhee dvee dwee d#ee d$ee d%ee d&ee dee	 ded fdd ZZeedfeeeedd"d9e#eef de:e dhee dvee dwee d#ee d$ee d%ee d&ee dee	 ded fd!d"Z[eeeedd"d#ee d$ee d%ee d&ee dee	 defd#d$Z\				dzeeeedd"d%ee#ee$j%f  d&ee dee d'ee d#ee d$ee d%ee d&ee dee	 dd(fd)d*Z]				dzeeeedd"d+e#ed(f d%ee#ee$j%f  d&ee dee d'ee d#ee d$ee d%ee d&ee dee	 dd(fd,d-Z^eeeedd"d+e#ed(f d#ee d$ee d%ee d&ee dee	 dd(fd.d/Z_	dweeeedd"d0eCd1edee d#ee d$ee d%ee d&ee dee	 dd(fd2d3Z`	dweeeedd"d+e#ed(f dee d#ee d$ee d%ee d&ee dee	 dd(fd4d5Zaeeeedd"d.ed#ee d$ee d%ee d&ee dee	 defd6d7Zbeeeedd"d.ed#ee d$ee d%ee d&ee dee	 defd8d9Zc	dweeeedd"d:eed d#ee d$ee d%ee d&ee dee	 defd;d<Ze		dxeeeedd"ded=ee d>ee d#ee d$ee d%ee d&ee dee	 deffd?d@Zg		dxeeeedd"dwedee d>ee d#ee d$ee d%ee d&ee dee	 defdAdBZheeeedd"dwed#ee d$ee d%ee d&ee dee	 defdCdDZieeeedd"dwed#ee d$ee d%ee d&ee dee	 defdEdFZjeeeedd"dwed#ee d$ee d%ee d&ee dee	 defdGdHZkeeeedd"dwed#ee d$ee d%ee d&ee dee	 defdIdJZleeeedd"d#ee d$ee d%ee d&ee dee	 defdKdLZmeeeedd"ded#ee d$ee d%ee d&ee dee	 defdMdNZneeeedd"d#ee d$ee d%ee d&ee dee	 defdOdPZoeeeedd"d#ee d$ee d%ee d&ee dee	 defdQdRZpeeeedd"d#ee d$ee d%ee d&ee dee	 defdSdTZqeeeedd"d#ee d$ee d%ee d&ee dee	 defdUdVZreeeedd"d#ee d$ee d%ee d&ee dee	 dedfdWdXZseeeedd"d.ed#ee d$ee d%ee d&ee dee	 ddYfdZd[Zt		dxeeeedd"dged\ee#e:e#euef  euef  d]ee d#ee d$ee d%ee d&ee dee	 defd^d_Zvdeddeedddddfedeeeedd`daede:db dee dree dee:du  dee dhee dvee dzed{ dsee9 diee dee d}ee dee d~ee d#ee d$ee d%ee d&ee dee	 ddf*dcddZwdeddfeeeedd"dee#edff dqee dgee dhee:du  diee d#ee d$ee d%ee d&ee dee	 defdjdkZx	dweeeedd"diedledaee d#ee d$ee d%ee d&ee dee	 defdmdnZy	dweeeedd"doee d#ee d$ee d%ee d&ee dee	 defdpdqZzeeeedd"d#ee d$ee d%ee d&ee dee	 defdrdsZ{eeeedd"diedged#ee d$ee d%ee d&ee dee	 defdtduZ|  Z}S ({  	_ChatBasezjBase class for :class:`telegram.Chat` and :class:`telegram.ChatFullInfo`.

    .. versionadded:: 21.3
    )
first_nameidis_forum	last_nametitletypeusernameN
api_kwargsr8   r<   r;   r=   r7   r:   r9   r?   c          	         sZ   t  j|d || _ttj||| _|| _|| _	|| _
|| _|| _| jf| _|   d S )Nr>   )super__init__r8   r   
get_memberr   ChatTyper<   r;   r=   r7   r:   r9   	_id_attrs_freeze)	selfr8   r<   r;   r=   r7   r:   r9   r?   	__class__ A/var/www/html/venv/lib/python3.10/site-packages/telegram/_chat.pyrA   X   s   
z_ChatBase.__init__SENDERPRIVATEGROUP
SUPERGROUPCHANNELreturnc                 C   s$   | j dur| j S | jdur| jS dS )z
        :obj:`str`: Convenience property. Gives :attr:`~Chat.title` if not :obj:`None`,
        else :attr:`~Chat.full_name` if not :obj:`None`.

        .. versionadded:: 20.1
        N)r;   	full_namerF   rI   rI   rJ   effective_name   s
   

z_ChatBase.effective_namec                 C   s(   | j sdS | jr| j  d| j S | j S )a]  
        :obj:`str`: Convenience property. If :attr:`~Chat.first_name` is not :obj:`None`, gives
        :attr:`~Chat.first_name` followed by (if available) :attr:`~Chat.last_name`.

        Note:
            :attr:`full_name` will always be :obj:`None`, if the chat is a (super)group or
            channel.

        .. versionadded:: 13.2
        N )r7   r:   rR   rI   rI   rJ   rQ      s
   z_ChatBase.full_namec                 C   s   | j r	d| j  S dS )z}:obj:`str`: Convenience property. If the chat has a :attr:`~Chat.username`, returns a
        t.me link of the chat.
        zhttps://t.me/N)r=   rR   rI   rI   rJ   link   s   z_ChatBase.linknamec                 C   s   | j | jkr|rt| j|S | jrt| j| jS td| jr=|r+d| d| j dS | jr9d| j d| j dS tdtd)a  
        Note:
            :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
            Telegram for backward compatibility. You should use :meth:`mention_markdown_v2`
            instead.

        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to
                :attr:`~Chat.full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as markdown (version 1).

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`. If chat is a
                private group chat, then throw an :exc:`TypeError`.

        =Can not create a mention to a private chat without first name[]()7Can not create a mention to a public chat without title0Can not create a mention to a private group chat)	r<   rL   helpers_mention_markdownr8   rQ   	TypeErrorr=   rU   r;   rF   rV   rI   rI   rJ   r      s   z_ChatBase.mention_markdownc                 C   s   | j | jkr |rt| j|ddS | jrt| j| jddS td| jrI|r3dt|dd d| j dS | j	rEdt| j	dd d| j dS tdtd)	a  
        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to
                :attr:`~Chat.full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as markdown (version 2).

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`. If chat is a
                private group chat, then throw an :exc:`TypeError`.

           )versionrW   rX   rY   rZ   r[   r\   )
r<   rL   r]   r8   rQ   r^   r=   r   rU   r;   r_   rI   rI   rJ   mention_markdown_v2   s   z_ChatBase.mention_markdown_v2c                 C   s   | j | jkr|rt| j|S | jrt| j| jS td| jrA|r-d| j dt| dS | j	r=d| j dt| j	 dS tdtd)a  
        .. versionadded:: 20.0

        Args:
            name (:obj:`str`): The name used as a link for the chat. Defaults to :attr:`full_name`.

        Returns:
            :obj:`str`: The inline mention for the chat as HTML.

        Raises:
            :exc:`TypeError`: If the chat is a private chat and neither the :paramref:`name`
                nor the :attr:`~Chat.first_name` is set, then throw an :exc:`TypeError`.
                If the chat is a public chat and neither the :paramref:`name` nor the
                :attr:`~Chat.title` is set, then throw an :exc:`TypeError`.
                If chat is a private group chat, then throw an :exc:`TypeError`.

        rW   z	<a href="z">z</a>r[   r\   )
r<   rL   helpers_mention_htmlr8   rQ   r^   r=   rU   r   r;   r_   rI   rI   rJ   r      s   z_ChatBase.mention_html)read_timeoutwrite_timeoutconnect_timeoutpool_timeoutr?   rd   re   rf   rg   c                   $   |   j| j|||||dI dH S )a  Shortcut for::

             await bot.leave_chat(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.leave_chat`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        chat_idrd   re   rf   rg   r?   N)get_bot
leave_chatr8   rF   rd   re   rf   rg   r?   rI   rI   rJ   leave     z_ChatBase.leave)r   .c                   rh   )a]  Shortcut for::

             await bot.get_chat_administrators(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_administrators`.

        Returns:
            tuple[:class:`telegram.ChatMember`]: A tuple of administrators in a chat. An Array of
            :class:`telegram.ChatMember` objects that contains information about all
            chat administrators except other bots. If the chat is a group or a supergroup
            and no administrators were appointed, only the creator will be returned.

        ri   N)rk   get_chat_administratorsr8   rm   rI   rI   rJ   get_administrators-     z_ChatBase.get_administratorsc                   rh   )a	  Shortcut for::

             await bot.get_chat_member_count(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_member_count`.

        Returns:
            :obj:`int`
        ri   N)rk   get_chat_member_countr8   rm   rI   rI   rJ   get_member_countM  ro   z_ChatBase.get_member_countuser_idr   c             	      &   |   j| j||||||dI dH S )a  Shortcut for::

             await bot.get_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.get_chat_member`.

        Returns:
            :class:`telegram.ChatMember`

        rj   ru   rd   re   rf   rg   r?   N)rk   get_chat_memberr8   rF   ru   rd   re   rf   rg   r?   rI   rI   rJ   rB   i  s   z_ChatBase.get_memberrevoke_messages
until_datec          	         s*   |   j| j||||||||d	I dH S )a$  Shortcut for::

             await bot.ban_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_member`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	rj   ru   rd   re   rf   rg   r{   r?   rz   N)rk   ban_chat_memberr8   )	rF   ru   rz   r{   rd   re   rf   rg   r?   rI   rI   rJ   
ban_member     z_ChatBase.ban_membersender_chat_idc             	      rv   )aW  Shortcut for::

             await bot.ban_chat_sender_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rj   r   rd   re   rf   rg   r?   Nrk   ban_chat_sender_chatr8   rF   r   rd   re   rf   rg   r?   rI   rI   rJ   ban_sender_chat     z_ChatBase.ban_sender_chatrj   c             	      &   |   j|| j|||||dI dH S )a~  Shortcut for::

             await bot.ban_chat_sender_chat(
                 sender_chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.ban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nr   rF   rj   rd   re   rf   rg   r?   rI   rI   rJ   ban_chat     z_ChatBase.ban_chatc             	      rv   )a[  Shortcut for::

             await bot.unban_chat_sender_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nrk   unban_chat_sender_chatr8   r   rI   rI   rJ   unban_sender_chat  r   z_ChatBase.unban_sender_chatc             	      r   )a  Shortcut for::

             await bot.unban_chat_sender_chat(
                 sender_chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unban_chat_sender_chat`.

        .. versionadded:: 13.9

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        r   Nr   r   rI   rI   rJ   
unban_chat  r   z_ChatBase.unban_chatonly_if_bannedc             
      (   |   j| j|||||||dI dH S )a!  Shortcut for::

             await bot.unban_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.unban_chat_member`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   ru   rd   re   rf   rg   r?   r   N)rk   unban_chat_memberr8   )rF   ru   r   rd   re   rf   rg   r?   rI   rI   rJ   unban_member1  s   z_ChatBase.unban_membercan_change_infocan_post_messagescan_edit_messagescan_delete_messagescan_invite_userscan_restrict_memberscan_pin_messagescan_promote_membersis_anonymouscan_manage_chatcan_manage_video_chatscan_manage_topicscan_post_storiescan_edit_storiescan_delete_storiesc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|	d|d|d|d|d|d|
d|d|d|d|d|d|I dH S )a  Shortcut for::

             await bot.promote_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.promote_chat_member`.

        .. versionadded:: 13.2
        .. versionchanged:: 20.0
           The argument ``can_manage_voice_chats`` was renamed to
           :paramref:`~telegram.Bot.promote_chat_member.can_manage_video_chats` in accordance to
           Bot API 6.0.
        .. versionchanged:: 20.6
           The arguments `can_post_stories`, `can_edit_stories` and `can_delete_stories` were
           added.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rj   ru   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   r   r   r   NrI   )rk   promote_chat_memberr8   )rF   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   promote_memberQ  s\   -	

z_ChatBase.promote_memberpermissions use_independent_chat_permissionsc          
         s,   |   j| j|||||||||	d
I dH S )a  Shortcut for::

             await bot.restrict_chat_member(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.restrict_chat_member`.

        .. versionadded:: 13.2

        .. versionadded:: 20.1
            Added :paramref:`~telegram.Bot.restrict_chat_member.use_independent_chat_permissions`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )
rj   ru   r   r{   r   rd   re   rf   rg   r?   N)rk   restrict_chat_memberr8   )
rF   ru   r   r{   r   rd   re   rf   rg   r?   rI   rI   rJ   restrict_member  s   z_ChatBase.restrict_memberc             
      (   |   j| j|||||||dI dH S )a  Shortcut for::

             await bot.set_chat_permissions(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_permissions`.

        .. versionadded:: 20.1
            Added :paramref:`~telegram.Bot.set_chat_permissions.use_independent_chat_permissions`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   r   r   rd   re   rf   rg   r?   N)rk   set_chat_permissionsr8   )rF   r   r   rd   re   rf   rg   r?   rI   rI   rJ   set_permissions  s   z_ChatBase.set_permissionscustom_titlec             
      r   )am  Shortcut for::

             await bot.set_chat_administrator_custom_title(
                 update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_administrator_custom_title`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   ru   r   rd   re   rf   rg   r?   N)rk   #set_chat_administrator_custom_titler8   )rF   ru   r   rd   re   rf   rg   r?   rI   rI   rJ   set_administrator_custom_title  s   z(_ChatBase.set_administrator_custom_titlephotoc             	      rv   )ak  Shortcut for::

             await bot.set_chat_photo(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_photo`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   r   rd   re   rf   rg   r?   N)rk   set_chat_photor8   )rF   r   rd   re   rf   rg   r?   rI   rI   rJ   	set_photo     z_ChatBase.set_photoc                   rh   )aq  Shortcut for::

             await bot.delete_chat_photo(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.delete_chat_photo`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        ri   N)rk   delete_chat_photor8   rm   rI   rI   rJ   delete_photo+  s   z_ChatBase.delete_photoc             	      rv   )ak  Shortcut for::

             await bot.set_chat_title(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_title`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   r;   rd   re   rf   rg   r?   N)rk   set_chat_titler8   )rF   r;   rd   re   rf   rg   r?   rI   rI   rJ   	set_titleL  r   z_ChatBase.set_titledescriptionc             	      rv   )aw  Shortcut for::

             await bot.set_chat_description(
                 chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_description`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   r   rd   re   rf   rg   r?   N)rk   set_chat_descriptionr8   )rF   r   rd   re   rf   rg   r?   rI   rI   rJ   set_descriptiono  r   z_ChatBase.set_description
message_iddisable_notificationbusiness_connection_idc          	         *   |   j| j||||||||d	I dH S )a0  Shortcut for::

              await bot.pin_chat_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.pin_chat_message`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )	rj   r   r   rd   re   rf   rg   r?   r   N)rk   pin_chat_messager8   )	rF   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   pin_message     z_ChatBase.pin_messagec             
      s(   |   j| j|||||||dI dH S )a4  Shortcut for::

              await bot.unpin_chat_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_chat_message`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   rd   re   rf   rg   r?   r   r   N)rk   unpin_chat_messager8   )rF   r   r   rd   re   rf   rg   r?   rI   rI   rJ   unpin_message  s   z_ChatBase.unpin_messagec                   rh   )a>  Shortcut for::

              await bot.unpin_all_chat_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_chat_messages`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        ri   N)rk   unpin_all_chat_messagesr8   rm   rI   rI   rJ   unpin_all_messages  s   z_ChatBase.unpin_all_messages)reply_to_message_idallow_sending_without_replydisable_web_page_previewrd   re   rf   rg   r?   text
parse_modereply_markupentitiesr,   protect_contentmessage_thread_idlink_preview_optionsr)   reply_parametersr/   message_effect_idallow_paid_broadcastr   r   r   r+   c                   s   |   jdi d| jd|d|d|d|d|d|d|	d	|d
|d|d|d|d|d|d|d|d|d|
d|d|I dH S )a6  Shortcut for::

             await bot.send_message(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_message`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   NrI   )rk   send_messager8   )rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r     X   "	

z_ChatBase.send_messagec             	      rv   )a;  Shortcut for::

             await bot.delete_message(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.delete_message`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   r   rd   re   rf   rg   r?   N)rk   delete_messager8   )rF   r   rd   re   rf   rg   r?   rI   rI   rJ   r   -     z_ChatBase.delete_messagemessage_idsc             	      rv   )a=  Shortcut for::

             await bot.delete_messages(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.delete_messages`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )rj   r   rd   re   rf   rg   r?   N)rk   delete_messagesr8   )rF   r   rd   re   rf   rg   r?   rI   rI   rJ   r   M  r   z_ChatBase.delete_messages)
r   r   rd   re   rf   rg   r?   captionr   caption_entitiesmedia)r"   r#   r$   r%   r   r   )r+   .c	       
            s   |   jdi d| jd|d|d|	d|d|d|d|d	|d
|
d|d|d|d|d|d|d|d|d|I dH S )as  Shortcut for::

             await bot.send_media_group(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_media_group`.

        Returns:
            tuple[:class:`telegram.Message`]: On success, a tuple of :class:`~telegram.Message`
            instances that were sent is returned.

        rj   r   r   r   rd   re   rf   rg   r?   r   r   r   r   r   r   r   r   r   r   NrI   )rk   send_media_groupr8   )rF   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   rI   rI   rJ   r   m  sP   #	

z_ChatBase.send_media_groupactionc          	         r   )a  Shortcut for::

             await bot.send_chat_action(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_chat_action`.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        )	rj   r   r   rd   re   rf   rg   r?   r   N)rk   send_chat_actionr8   )	rF   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r     r~   z_ChatBase.send_chat_action)r   r   filenamerd   re   rf   rg   r?   r.   has_spoilershow_caption_above_mediar   c                   s   |   jdi d| jd|d|d|d|d|
d|d|d	|d
|d|d|d|d|d|d|d|d|d|	d|d|d|d|I dH S )a2  Shortcut for::

             await bot.send_photo(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_photo`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   r   NrI   )rk   
send_photor8   )rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r     `   $	

z_ChatBase.send_photo)r   r   contactrd   re   rf   rg   r?   phone_numbervcardr   r   c                   s   |   jdi d| jd|d|d|d|d|d|	d|d	|d
|d|d|d|d|d|d|d|d|d|
d|d|I dH S )a6  Shortcut for::

             await bot.send_contact(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_contact`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r   r7   r:   r   r   r   r   rd   re   rf   rg   r   r   r?   r   r   r   r   r   r   NrI   )rk   send_contactr8   )rF   r   r7   r:   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r   	  r   z_ChatBase.send_contactaudior   duration	performer	thumbnailc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|	d|d|
d|d|d|d|d|d|d|d|d|d|I dH S )a2  Shortcut for::

             await bot.send_audio(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_audio`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r   r   r   r;   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   NrI   )rk   
send_audior8   )rF   r   r   r   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r   C  h   &	

z_ChatBase.send_audiodocumentr   disable_content_type_detectionc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|
d|d|d|d|d|d|	d|d|d|I dH S )a8  Shortcut for::

             await bot.send_document(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_document`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r   r   r   r   r   r   r   rd   re   rf   rg   r   r   r?   r   r   r   r   r   r   r   r   NrI   )rk   send_documentr8   )rF   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r     r   z_ChatBase.send_document)r   r   rd   re   rf   rg   r?   	checklistr!   r    c                   s6   |   j| j|||||||||	|
||||dI dH S )ab  Shortcut for::

             await bot.send_checklist(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_checklist`.

        .. versionadded:: 22.3

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rj   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   N)rk   send_checklistr8   )rF   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r     s$   z_ChatBase.send_checklistemojic
                   s   |   jdi d| jd|d|
d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|	I dH S )a0  Shortcut for::

             await bot.send_dice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_dice`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r   r   r   r   rd   re   rf   rg   r   r?   r   r   r   r   r   r   NrI   )rk   	send_dicer8   )rF   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r     H   	

z_ChatBase.send_dicegame_short_namec
                   s   |   jdi d| jd|d|d|
d|d|d|d|d	|d
|d|d|d|d|d|d|d|	I dH S )a0  Shortcut for::

             await bot.send_game(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_game`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   r   r   NrI   )rk   	send_gamer8   )rF   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r   %  r   z_ChatBase.send_gamepayloadcurrencypricesr(   provider_tokenstart_parameter	photo_url
photo_sizephoto_widthphoto_height	need_nameneed_phone_number
need_emailneed_shipping_addressis_flexibleprovider_datasend_phone_number_to_providersend_email_to_providermax_tip_amountsuggested_tip_amountsc          $         s   |   jd&i d| jd|d|d|d|d|d|d|d	|d
|	d|
d|d|d|d|d|d|d|d|d|d|d|d|d|d| d|!d|"d|#d|d|d|d |d!|d"|d#|d$|I d%H S )'a  Shortcut for::

             await bot.send_invoice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_invoice`.

        Warning:
            As of API 5.2 :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>`
            is an optional argument and therefore the
            order of the arguments had to be changed. Use keyword arguments to make sure that the
            arguments are passed correctly.

        .. versionchanged:: 13.5
            As of Bot API 5.2, the parameter
            :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>` is optional.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   r  r  r  rd   re   rf   rg   r?   r   r  r  r   r   r   r   r   NrI   )rk   send_invoicer8   )$rF   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r  r  r  r  r  r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r  W  s   ;	
 !"#$
z_ChatBase.send_invoice)r   r   locationrd   re   rf   rg   r?   latitude	longitudelive_periodhorizontal_accuracyheadingproximity_alert_radiusr	  r*   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|d|d|	d|
d|d|d|I dH S )a8  Shortcut for::

             await bot.send_location(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_location`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r
  r  r   r   r   r   rd   re   rf   rg   r	  r  r?   r  r  r  r   r   r   r   r   r   NrI   )rk   send_locationr8   )rF   r
  r  r   r   r  r  r  r  r   r   r   r   r   r   r   r   r	  rd   re   rf   rg   r?   rI   rI   rJ   r    r   z_ChatBase.send_location	animationr   widthheightc                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|d|	d|d|
d|d|d|d|d|d|d|I dH S )a:  Shortcut for::

             await bot.send_animation(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_animation`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r  r   r  r  r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   r   r   r   r   r   r   r   NrI   )rk   send_animationr8   )rF   r  r   r  r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r    sp   (	

z_ChatBase.send_animationstickerr0   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|	d|
I dH S )a6  Shortcut for::

             await bot.send_sticker(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_sticker`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r  r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   r   r   r   NrI   )rk   send_stickerr8   )rF   r  r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r  =  sL   	

z_ChatBase.send_sticker)r   r   venuerd   re   rf   rg   r?   addressfoursquare_idfoursquare_typegoogle_place_idgoogle_place_typer  r2   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|d|d|	d|
d|d|d|d|d|d|I dH S )a2  Shortcut for::

             await bot.send_venue(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_venue`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r
  r  r;   r  r  r   r   r   r   rd   re   rf   rg   r  r  r?   r  r  r   r   r   r   r   r   NrI   )rk   
send_venuer8   )rF   r
  r  r;   r  r  r   r   r  r  r  r   r   r   r   r   r   r   r   r  rd   re   rf   rg   r?   rI   rI   rJ   r  q  r   z_ChatBase.send_venuevideor3   supports_streamingcoverstart_timestampc                   s   |   jd i d| jd|d|d|d|d|d|d|d	|d
|d|d|d|d|d|d|	d|d|d|d|d|d|
d|d|d|d|d|d|d|d|I dH S )!a2  Shortcut for::

             await bot.send_video(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_video`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r  r   r   r   r   r   r   rd   re   rf   rg   r  r  r   r  r   r   r!  r?   r   r   r   r   r   r   r   r   r   r   NrI   )rk   
send_videor8   )rF   r  r   r   r   r   r  r  r   r  r   r   r   r   r   r   r   r   r   r   r   r!  r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r"    |   +	

z_ChatBase.send_video
video_noter4   lengthc                   s   |   jdi d| jd|d|d|d|d|d|	d|d	|d
|d|d|d|d|d|d|d|d|d|
d|d|I dH S )a<  Shortcut for::

             await bot.send_video_note(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_video_note`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r$  r   r%  r   r   r   r   rd   re   rf   rg   r   r?   r   r   r   r   r   r   r   NrI   )rk   send_video_noter8   )rF   r$  r   r%  r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r&    r   z_ChatBase.send_video_notevoicer5   c                   s   |   jdi d| jd|d|d|d|d|d|
d|d	|d
|d|d|d|d|d|d|d|d|d|	d|d|d|I dH S )a2  Shortcut for::

             await bot.send_voice(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_voice`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r'  r   r   r   r   r   r   rd   re   rf   rg   r   r?   r   r   r   r   r   r   r   r   NrI   )rk   
send_voicer8   )rF   r'  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r(  9  s\   #	

z_ChatBase.send_voicequestionoptionsr'   allows_multiple_answerscorrect_option_id	is_closedexplanationexplanation_parse_modeopen_period
close_dateexplanation_entitiesquestion_parse_modequestion_entitiesc                   s   |   jd i d| jd|d|d|d|d|d|d|d	|d
|d|d|	d|d|d|d|d|d|d|
d|d|d|d|d|d|d|d|d|d|d|I dH S )!a0  Shortcut for::

             await bot.send_poll(update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_poll`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r)  r*  r   r<   r+  r,  r-  r   r   r   r   rd   re   rf   rg   r   r   r.  r/  r0  r1  r?   r   r2  r   r   r   r3  r4  NrI   )rk   	send_pollr8   )rF   r)  r*  r   r<   r+  r,  r-  r   r   r.  r/  r0  r1  r2  r   r   r   r   r3  r4  r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r5  u  r#  z_ChatBase.send_pollfrom_chat_idvideo_start_timestampr-   c                      |   jdi d| jd|d|d|d|d|d|d|d	|d
|
d|d|d|d|d|d|d|d|d|	d|d|I dH S )a  Shortcut for::

             await bot.copy_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copies`, :meth:`copy_messages`.

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        rj   r6  r   r   r7  r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   NrI   rk   copy_messager8   )rF   r6  r   r   r   r   r   r   r   r   r   r   r   r7  r   r   rd   re   rf   rg   r?   rI   rI   rJ   	send_copy  X   $	

z_ChatBase.send_copyc                   r8  )a  Shortcut for::

             await bot.copy_message(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

        .. seealso:: :meth:`send_copy`, :meth:`send_copies`, :meth:`copy_messages`.

        Returns:
            :class:`telegram.MessageId`: On success, returns the MessageId of the sent message.

        r6  rj   r   r   r7  r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   r   NrI   r9  )rF   rj   r   r   r   r   r   r   r   r   r   r   r   r7  r   r   rd   re   rf   rg   r?   rI   rI   rJ   r:    r<  z_ChatBase.copy_messageremove_caption)r-   .c                   0   |   j| j|||||||||	|
|dI dH S )a  Shortcut for::

             await bot.copy_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_messages`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copy`, :meth:`copy_messages`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of the sent messages is returned.

        )rj   r6  r   r   r   r   r=  rd   re   rf   rg   r?   Nrk   copy_messagesr8   )rF   r6  r   r   r   r   r=  rd   re   rf   rg   r?   rI   rI   rJ   send_copies9	     z_ChatBase.send_copiesc                   r>  )a  Shortcut for::

             await bot.copy_messages(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.copy_messages`.

        .. seealso:: :meth:`copy_message`, :meth:`send_copy`, :meth:`send_copies`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of the sent messages is returned.

        )r6  rj   r   r   r   r   r=  rd   re   rf   rg   r?   Nr?  )rF   rj   r   r   r   r   r=  rd   re   rf   rg   r?   rI   rI   rJ   r@  f	  rB  z_ChatBase.copy_messagesc                   0   |   j| j|||||||	|
|||dI dH S )a  Shortcut for::

             await bot.forward_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_message`.

        .. seealso:: :meth:`forward_to`, :meth:`forward_messages_from`, :meth:`forward_messages_to`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )rj   r6  r   r7  r   rd   re   rf   rg   r?   r   r   Nrk   forward_messager8   )rF   r6  r   r   r   r   r7  rd   re   rf   rg   r?   rI   rI   rJ   forward_from	  s   z_ChatBase.forward_fromc                   rC  )a  Shortcut for::

             await bot.forward_message(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_message`.

        .. seealso:: :meth:`forward_from`, :meth:`forward_messages_from`,
            :meth:`forward_messages_to`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.

        )r6  rj   r   r7  r   rd   re   rf   rg   r?   r   r   NrD  )rF   rj   r   r   r   r   r7  rd   re   rf   rg   r?   rI   rI   rJ   
forward_to	  rB  z_ChatBase.forward_toc                   .   |   j| j|||||||||	|
dI dH S )a  Shortcut for::

             await bot.forward_messages(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_messages`.

        .. seealso:: :meth:`forward_to`, :meth:`forward_from`, :meth:`forward_messages_to`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of sent messages is returned.

        )rj   r6  r   r   r   r   rd   re   rf   rg   r?   Nrk   forward_messagesr8   )rF   r6  r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   forward_messages_from	     z_ChatBase.forward_messages_fromc                   rH  )a  Shortcut for::

             await bot.forward_messages(from_chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see :meth:`telegram.Bot.forward_messages`.

        .. seealso:: :meth:`forward_from`, :meth:`forward_to`, :meth:`forward_messages_from`.

        .. versionadded:: 20.8

        Returns:
            tuple[:class:`telegram.MessageId`]: On success, a tuple of :class:`~telegram.MessageId`
            of sent messages is returned.

        )r6  rj   r   r   r   r   rd   re   rf   rg   r?   NrI  )rF   rj   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   forward_messages_to
  rL  z_ChatBase.forward_messages_toc                   rh   )aS  Shortcut for::

             await bot.export_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.export_chat_invite_link`.

        .. versionadded:: 13.4

        Returns:
            :obj:`str`: New invite link on success.

        ri   N)rk   export_chat_invite_linkr8   rm   rI   rI   rJ   export_invite_linkB
     z_ChatBase.export_invite_linkexpire_datemember_limitcreates_join_requestr   c          
         s,   |   j| j|||||||	||d
I dH S )a  Shortcut for::

             await bot.create_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_chat_invite_link`.

        .. versionadded:: 13.4

        .. versionchanged:: 13.8
           Edited signature according to the changes of
           :meth:`telegram.Bot.create_chat_invite_link`.

        Returns:
            :class:`telegram.ChatInviteLink`

        )
rj   rQ  rR  rd   re   rf   rg   r?   rV   rS  N)rk   create_chat_invite_linkr8   )
rF   rQ  rR  rV   rS  rd   re   rf   rg   r?   rI   rI   rJ   create_invite_linka
  s   z_ChatBase.create_invite_linkinvite_linkc                   s.   |   j| j|||||||	|
||dI dH S )a  Shortcut for::

             await bot.edit_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_chat_invite_link`.

        .. versionadded:: 13.4

        .. versionchanged:: 13.8
           Edited signature according to the changes of :meth:`telegram.Bot.edit_chat_invite_link`.

        Returns:
            :class:`telegram.ChatInviteLink`

        )rj   rV  rQ  rR  rd   re   rf   rg   r?   rV   rS  N)rk   edit_chat_invite_linkr8   )rF   rV  rQ  rR  rV   rS  rd   re   rf   rg   r?   rI   rI   rJ   edit_invite_link
  s   z_ChatBase.edit_invite_linkc             	      rv   )aL  Shortcut for::

             await bot.revoke_chat_invite_link(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.revoke_chat_invite_link`.

        .. versionadded:: 13.4

        Returns:
            :class:`telegram.ChatInviteLink`

        )rj   rV  rd   re   rf   rg   r?   N)rk   revoke_chat_invite_linkr8   )rF   rV  rd   re   rf   rg   r?   rI   rI   rJ   revoke_invite_link
  r   z_ChatBase.revoke_invite_linksubscription_periodsubscription_pricec          	         *   |   j| j||||||||d	I dH S )a  Shortcut for::

            await bot.create_chat_subscription_invite_link(
                chat_id=update.effective_chat.id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_chat_subscription_invite_link`.

        .. versionadded:: 21.5

        Returns:
            :class:`telegram.ChatInviteLink`
        )	rj   r[  r\  rV   rd   re   rf   rg   r?   N)rk   $create_chat_subscription_invite_linkr8   )	rF   r[  r\  rV   rd   re   rf   rg   r?   rI   rI   rJ   create_subscription_invite_link
  s   z)_ChatBase.create_subscription_invite_linkc             
      r   )a  Shortcut for::

            await bot.edit_chat_subscription_invite_link(
                chat_id=update.effective_chat.id, *args, **kwargs
            )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_chat_subscription_invite_link`.

        .. versionadded:: 21.5

        Returns:
            :class:`telegram.ChatInviteLink`

        )rj   rV  rd   re   rf   rg   r?   rV   N)rk   "edit_chat_subscription_invite_linkr8   )rF   rV  rV   rd   re   rf   rg   r?   rI   rI   rJ   edit_subscription_invite_link
  s   z'_ChatBase.edit_subscription_invite_linkc             	      rv   )aa  Shortcut for::

             await bot.approve_chat_join_request(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.approve_chat_join_request`.

        .. versionadded:: 13.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rw   N)rk   approve_chat_join_requestr8   ry   rI   rI   rJ   approve_join_request$  r   z_ChatBase.approve_join_requestc             	      rv   )aa  Shortcut for::

             await bot.decline_chat_join_request(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.decline_chat_join_request`.

        .. versionadded:: 13.8

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.

        rw   N)rk   decline_chat_join_requestr8   ry   rI   rI   rJ   decline_join_requestE  r   z_ChatBase.decline_join_requestmenu_buttonc             	      rv   )a  Shortcut for::

             await bot.set_chat_menu_button(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_chat_menu_button`.

        Caution:
            Can only work, if the chat is a private chat.

        .. seealso:: :meth:`get_menu_button`

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rj   rf  rd   re   rf   rg   r?   N)rk   set_chat_menu_buttonr8   )rF   rf  rd   re   rf   rg   r?   rI   rI   rJ   set_menu_buttonf  s   z_ChatBase.set_menu_button
icon_coloricon_custom_emoji_idc          	         r]  )a=  Shortcut for::

             await bot.create_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.create_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.ForumTopic`
        )	rj   rV   ri  rj  rd   re   rf   rg   r?   N)rk   create_forum_topicr8   )	rF   rV   ri  rj  rd   re   rf   rg   r?   rI   rI   rJ   rk       z_ChatBase.create_forum_topicc          	         r]  )aN  Shortcut for::

             await bot.edit_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	rj   r   rV   rj  rd   re   rf   rg   r?   N)rk   edit_forum_topicr8   )	rF   r   rV   rj  rd   re   rf   rg   r?   rI   rI   rJ   rm    rl  z_ChatBase.edit_forum_topicc             	      rv   )aP  Shortcut for::

             await bot.close_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.close_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rj   r   rd   re   rf   rg   r?   N)rk   close_forum_topicr8   rF   r   rd   re   rf   rg   r?   rI   rI   rJ   ro    r   z_ChatBase.close_forum_topicc             	      rv   )aR  Shortcut for::

             await bot.reopen_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.reopen_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rn  N)rk   reopen_forum_topicr8   rp  rI   rI   rJ   rq    r   z_ChatBase.reopen_forum_topicc             	      rv   )aR  Shortcut for::

             await bot.delete_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.delete_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rn  N)rk   delete_forum_topicr8   rp  rI   rI   rJ   rr    r   z_ChatBase.delete_forum_topicc             	      rv   )az  Shortcut for::

             await bot.unpin_all_forum_topic_messages(chat_id=update.effective_chat.id,
                *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_forum_topic_messages`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        rn  N)rk   unpin_all_forum_topic_messagesr8   rp  rI   rI   rJ   rs  3  r   z(_ChatBase.unpin_all_forum_topic_messagesc                   rh   )a  Shortcut for::

             await bot.unpin_all_general_forum_topic_messages(chat_id=update.effective_chat.id,
                *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unpin_all_general_forum_topic_messages`.

        .. versionadded:: 20.5

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ri   N)rk   &unpin_all_general_forum_topic_messagesr8   rm   rI   rI   rJ   rt  T  rP  z0_ChatBase.unpin_all_general_forum_topic_messagesc             	      rv   )a}  Shortcut for::

             await bot.edit_general_forum_topic(
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.edit_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rj   rV   rd   re   rf   rg   r?   N)rk   edit_general_forum_topicr8   )rF   rV   rd   re   rf   rg   r?   rI   rI   rJ   ru  s  s   z"_ChatBase.edit_general_forum_topicc                   rh   )a`  Shortcut for::

             await bot.close_general_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.close_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ri   N)rk   close_general_forum_topicr8   rm   rI   rI   rJ   rv       z#_ChatBase.close_general_forum_topicc                   rh   )a  Shortcut for::

             await bot.reopen_general_forum_topic(
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.reopen_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ri   N)rk   reopen_general_forum_topicr8   rm   rI   rI   rJ   rx    rr   z$_ChatBase.reopen_general_forum_topicc                   rh   )a^  Shortcut for::

             await bot.hide_general_forum_topic(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.hide_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ri   N)rk   hide_general_forum_topicr8   rm   rI   rI   rJ   ry    rw  z"_ChatBase.hide_general_forum_topicc                   rh   )a  Shortcut for::

             await bot.unhide_general_forum_topic (
                chat_id=update.effective_chat.id, *args, **kwargs
             )

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.unhide_general_forum_topic`.

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ri   N)rk   unhide_general_forum_topicr8   rm   rI   rI   rJ   rz    rr   z$_ChatBase.unhide_general_forum_topicc                   rh   )a  Shortcut for::

             await bot.get_chat_menu_button(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_chat_menu_button`.

        Caution:
            Can only work, if the chat is a private chat.

        .. seealso:: :meth:`set_menu_button`

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.MenuButton`: On success, the current menu button is returned.
        ri   N)rk   get_chat_menu_buttonr8   rm   rI   rI   rJ   get_menu_button  s   z_ChatBase.get_menu_buttonr1   c             	      s&   |   j| j||||||dI dH S )az  Shortcut for::

             await bot.get_user_chat_boosts(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.get_user_chat_boosts`.

        .. versionadded:: 20.8

        Returns:
            :class:`telegram.UserChatBoosts`: On success, returns the boosts applied in the chat.
        )rj   ru   r?   rd   re   rf   rg   N)rk   get_user_chat_boostsr8   ry   rI   rI   rJ   r}  4  r   z_ChatBase.get_user_chat_boostsreactionis_bigc          	         r]  )aU  Shortcut for::

             await bot.set_message_reaction(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.set_message_reaction`.

        .. versionadded:: 20.8

        Returns:
            :obj:`bool` On success, :obj:`True` is returned.
        )	rj   r   r~  r  rd   re   rf   rg   r?   N)rk   set_message_reactionr8   )	rF   r   r~  r  rd   re   rf   rg   r?   rI   rI   rJ   r  T  rl  z_ChatBase.set_message_reaction)r   r   rd   re   rf   rg   r?   
star_countr&   c                   s   |   jdi d| jd|d|d|d|d|d|d|d	|d
|	d|
d|d|d|d|d|d|d|d|d|d|I dH S )ak  Shortcut for::

             await bot.send_paid_media(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.send_paid_media`.

        .. versionadded:: 21.4

        Returns:
            :class:`telegram.Message`: On success, instance representing the message posted.
        rj   r  r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   r   r   r   NrI   )rk   send_paid_mediar8   )rF   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r  x  r<  z_ChatBase.send_paid_mediagift_idr   text_parse_modetext_entitiespay_for_upgradec                   sH   |   jd|||||||||	|
d
| jtjkrdnd| jiI dH S )aV  Shortcut for::

             await bot.send_gift(user_id=update.effective_chat.id, *args, **kwargs )

        or::

            await bot.send_gift(chat_id=update.effective_chat.id, *args, **kwargs )

        For the documentation of the arguments, please see :meth:`telegram.Bot.send_gift`.

        Caution:
            Will only work if the chat is a private or channel chat, see :attr:`type`.

        .. versionadded:: 21.8

        .. versionchanged:: 21.11

            Added support for channel chats.

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )
r  r   r  r  r  rd   re   rf   rg   r?   rj   ru   NrI   )rk   	send_giftr<   ChatrO   r8   )rF   r  r   r  r  r  rd   re   rf   rg   r?   rI   rI   rJ   r    s   
$z_ChatBase.send_giftowned_gift_idc          	         r]  )aK  Shortcut for::

             await bot.transfer_gift(new_owner_chat_id=update.effective_chat.id, *args, **kwargs )

        For the documentation of the arguments, please see :meth:`telegram.Bot.transfer_gift`.

        .. versionadded:: 22.1

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )	new_owner_chat_idr   r  r  rd   re   rf   rg   r?   N)rk   transfer_giftr8   )	rF   r   r  r  rd   re   rf   rg   r?   rI   rI   rJ   r    r   z_ChatBase.transfer_giftcustom_descriptionc             	      rv   )aE  Shortcut for::

             await bot.verify_chat(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.verify_chat`.

        .. versionadded:: 21.10

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rj   r  rd   re   rf   rg   r?   N)rk   verify_chatr8   )rF   r  rd   re   rf   rg   r?   rI   rI   rJ   verify	  r   z_ChatBase.verifyc                   rh   )a_  Shortcut for::

             await bot.remove_chat_verification(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.remove_chat_verification`.

        .. versionadded:: 21.10

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        ri   N)rk   remove_chat_verificationr8   rm   rI   rI   rJ   remove_verification)  rw  z_ChatBase.remove_verificationc             
      r   )aX  Shortcut for::

             await bot.read_business_message(chat_id=update.effective_chat.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.read_business_message`.

        .. versionadded:: 22.1

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rj   r   r   rd   re   rf   rg   r?   N)rk   read_business_messager8   )rF   r   r   rd   re   rf   rg   r?   rI   rI   rJ   r  G  s   z_ChatBase.read_business_message)NNNNN)N)NN)NNNNNNNNNNNNNNN)NNNN)~__name__
__module____qualname____doc__	__slots__intstrr   boolr   rA   r   rC   rK   r   __annotations__rL   rM   rN   rO   propertyrS   rQ   rU   r   rb   r   r   r   floatrn   tuplerq   rt   rB   r   dtmdatetimer}   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   send_actionr   r   r   r   r   r   r   r   objectr  r  r  r  r  r"  r&  r(  r   r5  r;  r:  rA  r@  rF  rG  rK  rM  rO  rU  rX  rZ  r_  ra  rc  re  r   rh  r
   rk  rm  ro  rq  rr  rs  rt  ru  rv  rx  ry  rz  r|  r}  r   r  r  r  r  r  r  r  __classcell__rI   rI   rG   rJ   r6   P   s  
 

&!#

#
 	
!	

&	
%
	
'	
%
	
&	

#	

J	

-	

)	

'	
&
%	
%	
&	

%	

$
 
	

>	
$	
%	


<	

"

	

@	

=
	


E

	

B


2	

5	

9	

 !"#$%&
d	

A
	


I
	

6	

E
	

 
O
	

=

	

@	


 P

	
@

	
@	
	
1	
	
1	
	
0	
	
1
	
/
	
.!	
.	
0	%	
)	
)	%	#	(	
'	
(	$	$	$	$#	%!#!#'	#	
(

	
?
	
6	
%	##	
r6   c                   @   s   e Zd ZdZdZdS )r  aN
  This object represents a chat.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`id` is equal.

    .. versionchanged:: 20.0

        * Removed the deprecated methods ``kick_member`` and ``get_members_count``.
        * The following are now keyword-only arguments in Bot methods:
          ``location``, ``filename``, ``contact``, ``{read, write, connect, pool}_timeout``,
          ``api_kwargs``. Use a named argument for those,
          and notice that some positional arguments changed position as a result.

    .. versionchanged:: 20.0
        Removed the attribute ``all_members_are_administrators``. As long as Telegram provides
        this field for backwards compatibility, it is available through
        :attr:`~telegram.TelegramObject.api_kwargs`.

    .. versionchanged:: 21.3
        As per Bot API 7.3, most of the arguments and attributes of this class have now moved to
        :class:`telegram.ChatFullInfo`.

    Args:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        title (:obj:`str`, optional): Title, for supergroups, channels and group chats.
        username (:obj:`str`, optional): Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`, optional): First name of the other party in a private chat.
        last_name (:obj:`str`, optional): Last name of the other party in a private chat.
        is_forum (:obj:`bool`, optional): :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0

    Attributes:
        id (:obj:`int`): Unique identifier for this chat.
        type (:obj:`str`): Type of chat, can be either :attr:`PRIVATE`, :attr:`GROUP`,
            :attr:`SUPERGROUP` or :attr:`CHANNEL`.
        title (:obj:`str`): Optional. Title, for supergroups, channels and group chats.
        username (:obj:`str`): Optional. Username, for private chats, supergroups and channels if
            available.
        first_name (:obj:`str`): Optional. First name of the other party in a private chat.
        last_name (:obj:`str`): Optional. Last name of the other party in a private chat.
        is_forum (:obj:`bool`): Optional. :obj:`True`, if the supergroup chat is a forum
            (has topics_ enabled).

            .. versionadded:: 20.0

    .. _topics: https://telegram.org/blog/topics-in-groups-collectible-usernames#topics-in-groups
    rI   N)r  r  r  r  r  rI   rI   rI   rJ   r  j  s    5r  )Hr  r  r  collections.abcr   htmlr   typingr   r   r   r   telegramr   telegram._chatpermissionsr	   telegram._forumtopicr
   telegram._menubuttonr   telegram._reactionr   telegram._telegramobjectr   telegram._utilsr   telegram._utils.defaultvaluer   telegram._utils.typesr   r   r   r   r   r   telegram.helpersr   r   rc   r   r]   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r  rI   rI   rI   rJ   <module>   sb    |!                            6