o
    GCh
S                    @   s  d Z ddlmZ ddlmZ ddl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mZmZmZ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"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 G dd deZ5dS )z?This module contains an object that represents a Telegram User.    )Sequence)datetime)TYPE_CHECKINGOptionalUnion)InlineKeyboardButton)
MenuButton)TelegramObject)DEFAULT_NONE)CorrectOptionID	FileInputJSONDictODVInputReplyMarkup)mention_html)mention_markdown)	AnimationAudioContactDocumentInlineKeyboardMarkupInputMediaAudioInputMediaDocumentInputMediaPhotoInputMediaVideoInputPollOptionLabeledPriceLinkPreviewOptionsLocationMessageMessageEntity	MessageId	PhotoSizeReplyParametersStickerUserChatBoostsUserProfilePhotosVenueVideo	VideoNoteVoicec                J       s:  e Zd ZdZdZ										ddddeded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ee dee	 f fddZ
edefddZedefddZedee fddZ		deeeeddde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%Zdd&ee defd'd(Zdd&ee defd)d*Zdd&ee defd+d,Zdd&ee defd-d.Zedfeeeeddd/ed0ee d1ee dee d ee d!ee d"ee dee	 defd2d3Z		deeeeddd/ee d1ee 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dee d ee d!ee d"ee dee	 defd6d7Zeeddededdddfddeeeeedd8d9ed:ee d0ee d;ee d<eed=  d>ee d?ee d@edA dBedC d1ee dDee dEee dFee dGee dHee dee d ee d!ee d"ee dee	 ddIf*dJdK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efdLdMZeeeedddNee dee d ee d!ee d"ee dee	 defdOdPZdedededddddddfdedeeeeddQdRe e!dSf dTee d0ee d;ee d:ee dUeed=  d>ee d?ee dVee dBedC d1ee dDee dEee dWee dFee dHee dXee dee d ee d!ee d"ee dee	 ddIf.dYdZZ"eedddddfdeeeeeddedd[
d\ee d]  d0ee d>ee d?ee dBedC d1ee dDee dEee dFee dHee dee d ee d!ee d"ee dee	 dTee d:ee dUeed=  de#d^ f&d_d`Z$ddddedededdddddfdedeeeeddQdae e!dbf dcee ddee deee dTee d0ee d;ee d:ee dUeed=  d>ee d?ee dfee! dBedC d1ee dDee dEee dFee dHee dXee dee d ee d!ee d"ee dee	 ddIf2dgdhZ%		deeeedddied?ee d1ee dee d ee d!ee d"ee dee	 defdjdkZ&e&Z'	 dddeddedddddfdedeeeeddldmee dee dee d0ee d;ee dnee d>ee d?ee dBedC d1ee dDee dEee dFee dHee doedp dee d ee d!ee d"ee dee	 ddIf*dqdrZ(eddedddddf	deeeeeddsd0ee d;ee dtee d>ee d?ee dBedC d1ee dDee dEee dFee dHee dee d ee d!ee d"ee dee	 ddIf"dudvZ)dededdeddddddfdedeeeeddQdwe e!dxf dTee d0ee d;ee d:ee dyee dUeed=  d>ee d?ee dfee! dBedC d1ee dDee dEee dFee dHee dXee dee d ee d!ee d"ee dee	 ddIf.dzd{Z*ededddddfdeeeeeddsd|ed0ee d;ed} d>ee d?ee dBedC d1ee dDee dEee dFee dHee dee d ee d!ee d"ee dee	 ddIf"d~dZ+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dsdeedededee deded dee dee dee dee dee dee dee dee dee dee d0ee d;ed} dee ee,f  dee dee dee deee  d>ee d?ee dBedC dDee dEee dFee dHee dee d ee d!ee d"ee dee	 ddIfHddZ-d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 d0ee d;ee dee dee dee dee d>ee d?ee dBedC d1ee dDee dEee dFee dHee ded dee d ee d!ee d"ee dee	 ddIf.ddZ.d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dQde e!df dcee dee dee dTee d:ee d0ee d;ee dUeed=  d>ee d?ee dVee dfee! dBedC d1ee dDee dEee dWee dFee dHee dXee dee d ee d!ee d"ee dee	 ddIf6ddZ/ededdddddf	deeeeeddsde e!df d0ee d;ee d>ee d?ee dtee dBedC d1ee dDee dEee dFee dHee dee d ee d!ee d"ee dee	 ddIf$ddZ0ddedddeddeddddddddfdedeeeeddQde e!df dcee dTee d0ee d;ee dee dee d:ee dee dUeed=  d>ee d?ee dVee dfee! dBedC d1ee dDee dEee dWee dFee dHee dXee dee d ee d!ee d"ee dee	 ddIf8ddZ1d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 deee dee dee d0ee d;ee dee dee dee d>ee d?ee dBedC d1ee dDee dEee dFee dHee ded dee d ee d!ee d"ee dee	 ddIf2ddZ2ddededdddddfdedeeeeddQde e!df dcee dee d0ee d;ee d>ee d?ee dfee! dBedC d1ee dDee dEee dFee dHee dXee dee d ee d!ee d"ee dee	 ddIf*ddZ3ddedededddddfdedeeeeddQde e!df dcee dTee d0ee d;ee d:ee dUeed=  d>ee d?ee dBedC d1ee dDee dEee dFee dHee dXee dee d ee d!ee d"ee dee	 ddIf,ddÄZ4d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dsdedee edf  dee dee dee dee5 dee d0ee d;ee dee dee dee dee ee6f  deed=  d>ee d?ee dBedC d1ee dee deed=  dDee dEee dFee dHee dee d ee d!ee d"ee dee	 ddIf<ddԄZ7dedededdddf
deeeeeddsde eef d/edTee d:ee dUeed=  d0ee d;ee d>ee d?ee dBedC dWee dEee dFee dHee dee d ee d!ee d"ee dee	 ddf(dd؄Z8dedededdddf
deeeeeddsde eef d/edTee d:ee dUeed=  d0ee d;ee d>ee d?ee dBedC dWee dEee dFee dHee dee d ee d!ee d"ee dee	 ddf(ddۄZ9eeddfeeeeddde eef dNee d0e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e#d fdd߄Z:eeddfeeeeddde eef dNee d0e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e#d fddZ;eedfeeeeddde eef d/ed0ee d>ee d?ee dee d ee d!ee d"ee dee	 ddIfddZ<eedfeeeeddde eef d/ed0ee d>ee d?ee dee d ee d!ee d"ee dee	 ddIfddZ=eedfeeeeddde eef dNee d0ee d>ee d?ee dee d ee d!ee d"ee dee	 de#d fddZ>eedfeeeeddde eef dNee d0ee d>ee d?ee dee d ee d!ee d"ee dee	 de#d fddZ?eeeeddde eef 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ef dee d ee d!ee d"ee dee	 defddZA	deeeedddeeB dee d ee d!ee d"ee dee	 defddZCeeeedddee d ee d!ee d"ee dee	 deBfddZDeeeeddde eef dee d ee d!ee d"ee dee	 ddfddZEeeeedddedee d ee d!ee d"ee dee	 defddZF  ZGS )Userae  This object represents a Telegram user or bot.

    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
        The following are now keyword-only arguments in Bot methods:
        ``location``, ``filename``, ``venue``, ``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.

    Args:
        id (:obj:`int`): Unique identifier for this user or bot.
        is_bot (:obj:`bool`): :obj:`True`, if this user is a bot.
        first_name (:obj:`str`): User's or bot's first name.
        last_name (:obj:`str`, optional): User's or bot's last name.
        username (:obj:`str`, optional): User's or bot's username.
        language_code (:obj:`str`, optional): IETF language tag of the user's language.
        can_join_groups (:obj:`str`, optional): :obj:`True`, if the bot can be invited to groups.
            Returned only in :meth:`telegram.Bot.get_me`.
        can_read_all_group_messages (:obj:`str`, optional): :obj:`True`, if privacy mode is
            disabled for the bot. Returned only in :meth:`telegram.Bot.get_me`.
        supports_inline_queries (:obj:`str`, optional): :obj:`True`, if the bot supports inline
            queries. Returned only in :meth:`telegram.Bot.get_me`.

        is_premium (:obj:`bool`, optional): :obj:`True`, if this user is a Telegram Premium user.

            .. versionadded:: 20.0
        added_to_attachment_menu (:obj:`bool`, optional): :obj:`True`, if this user added
            the bot to the attachment menu.

            .. versionadded:: 20.0
        can_connect_to_business (:obj:`bool`, optional): :obj:`True`,  if the bot can be connected
            to a Telegram Business account to receive its messages. Returned only in
            :meth:`telegram.Bot.get_me`.

            .. versionadded:: 21.1
        has_main_web_app (:obj:`bool`, optional): :obj:`True`, if the bot has the main Web App.
            Returned only in :meth:`telegram.Bot.get_me`.

            .. versionadded:: 21.5

    Attributes:
        id (:obj:`int`): Unique identifier for this user or bot.
        is_bot (:obj:`bool`): :obj:`True`, if this user is a bot.
        first_name (:obj:`str`): User's or bot's first name.
        last_name (:obj:`str`): Optional. User's or bot's last name.
        username (:obj:`str`): Optional. User's or bot's username.
        language_code (:obj:`str`): Optional. IETF language tag of the user's language.
        can_join_groups (:obj:`str`): Optional. :obj:`True`, if the bot can be invited to groups.
            Returned only in :attr:`telegram.Bot.get_me` requests.
        can_read_all_group_messages (:obj:`str`): Optional. :obj:`True`, if privacy mode is
            disabled for the bot. Returned only in :attr:`telegram.Bot.get_me` requests.
        supports_inline_queries (:obj:`str`): Optional. :obj:`True`, if the bot supports inline
            queries. Returned only in :attr:`telegram.Bot.get_me` requests.
        is_premium (:obj:`bool`): Optional. :obj:`True`, if this user is a Telegram
            Premium user.

            .. versionadded:: 20.0
        added_to_attachment_menu (:obj:`bool`): Optional. :obj:`True`, if this user added
            the bot to the attachment menu.

            .. versionadded:: 20.0
        can_connect_to_business (:obj:`bool`): Optional. :obj:`True`,  if the bot can be connected
            to a Telegram Business account to receive its messages. Returned only in
            :meth:`telegram.Bot.get_me`.

            .. versionadded:: 21.1
        has_main_web_app (:obj:`bool`) Optional. :obj:`True`, if the bot has the main Web App.
            Returned only in :meth:`telegram.Bot.get_me`.

            .. versionadded:: 21.5

    .. |user_chat_id_note| replace:: This shortcuts build on the assumption that :attr:`User.id`
        coincides with the :attr:`Chat.id` of the private chat with the user. This has been the
        case so far, but Telegram does not guarantee that this stays this way.
    )added_to_attachment_menucan_connect_to_businesscan_join_groupscan_read_all_group_messages
first_namehas_main_web_appidis_bot
is_premiumlanguage_code	last_namesupports_inline_queriesusernameN
api_kwargsr2   r0   r3   r6   r8   r5   r.   r/   r7   r4   r,   r-   r1   r:   c                   sr   t  j|d || _|| _|| _|| _|| _|| _|| _|| _	|	| _
|
| _|| _|| _|| _| jf| _|   d S )Nr9   )super__init__r2   r0   r3   r6   r8   r5   r.   r/   r7   r4   r,   r-   r1   	_id_attrs_freeze)selfr2   r0   r3   r6   r8   r5   r.   r/   r7   r4   r,   r-   r1   r:   	__class__ G/var/www/html/govbot/env/lib/python3.10/site-packages/telegram/_user.pyr<      s    
zUser.__init__returnc                 C   s   | j r	d| j  S | jS )z:obj:`str`: Convenience property. If available, returns the user's :attr:`username`
        prefixed with "@". If :attr:`username` is not available, returns :attr:`full_name`.
        @)r8   	full_namer?   rB   rB   rC   name   s   z	User.namec                 C   s   | j r| j d| j  S | jS )z:obj:`str`: Convenience property. The user's :attr:`first_name`, followed by (if
        available) :attr:`last_name`.
         )r6   r0   rG   rB   rB   rC   rF      s   zUser.full_namec                 C   s   | j r	d| j  S dS )zu:obj:`str`: Convenience property. If :attr:`username` is available, returns a t.me link
        of the user.
        zhttps://t.me/N)r8   rG   rB   rB   rC   link   s   z	User.link)read_timeoutwrite_timeoutconnect_timeoutpool_timeoutr:   offsetlimitrK   rL   rM   rN   r&   c             
      s(   |   j| j|||||||dI dH S )zShortcut for::

             await bot.get_user_profile_photos(update.effective_user.id, *args, **kwargs)

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

        )user_idrO   rP   rK   rL   rM   rN   r:   N)get_botget_user_profile_photosr2   )r?   rO   rP   rK   rL   rM   rN   r:   rB   rB   rC   get_profile_photos   s   zUser.get_profile_photosrH   c                 C      |rt | j|S t | j| jS )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.

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

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

        helpers_mention_markdownr2   rF   r?   rH   rB   rB   rC   r      s   zUser.mention_markdownc                 C   s&   |r
t | j|ddS t | j| jddS )z
        Args:
            name (:obj:`str`): The name used as a link for the user. Defaults to :attr:`full_name`.

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

           )versionrV   rX   rB   rB   rC   mention_markdown_v2  s   	zUser.mention_markdown_v2c                 C   rU   )z
        Args:
            name (:obj:`str`): The name used as a link for the user. Defaults to :attr:`full_name`.

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

        )helpers_mention_htmlr2   rF   rX   rB   rB   rC   r     s   	zUser.mention_htmlc                 C   s   t |p| jd| j dS )a{  Shortcut for::

            InlineKeyboardButton(text=name, url=f"tg://user?id={update.effective_user.id}")

        .. versionadded:: 13.9

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

        Returns:
            :class:`telegram.InlineKeyboardButton`: InlineButton with url set to the user mention
        ztg://user?id=)texturl)r   rF   r2   rX   rB   rB   rC   mention_button*  s   zUser.mention_button
message_iddisable_notificationbusiness_connection_idc          	         s*   |   j| j||||||||d	I dH S )aW  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        )	chat_idr`   ra   rK   rL   rM   rN   rb   r:   N)rR   pin_chat_messager2   )	r?   r`   ra   rb   rK   rL   rM   rN   r:   rB   rB   rC   pin_message9     zUser.pin_messagec             
      s(   |   j| j|||||||dI dH S )a[  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        )rc   rK   rL   rM   rN   r:   r`   rb   N)rR   unpin_chat_messager2   )r?   r`   rb   rK   rL   rM   rN   r:   rB   rB   rC   unpin_message^  s   zUser.unpin_messagec                   $   |   j| j|||||dI dH S )am  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   rK   rL   rM   rN   r:   N)rR   unpin_all_chat_messagesr2   r?   rK   rL   rM   rN   r:   rB   rB   rC   unpin_all_messages  s   zUser.unpin_all_messages)reply_to_message_iddisable_web_page_previewallow_sending_without_replyrK   rL   rM   rN   r:   r]   
parse_modereply_markupentitiesr    protect_contentmessage_thread_idlink_preview_optionsr   reply_parametersr#   message_effect_idallow_paid_broadcastrn   ro   rp   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 )ae  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r]   rq   ro   rv   ra   rn   rw   rr   rp   rs   rt   ru   rK   rL   rM   rN   r:   rb   rx   ry   NrB   )rR   send_messager2   )r?   r]   rq   ra   rr   rs   rt   ru   rv   rw   rb   rx   ry   rn   ro   rp   rK   rL   rM   rN   r:   rB   rB   rC   rz     X   %	

zUser.send_messagec             	      &   |   j| j||||||dI dH S )a<  Shortcut for::

             await bot.delete_message(update.effective_user.id, *argss, **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.

        )rc   r`   rK   rL   rM   rN   r:   N)rR   delete_messager2   )r?   r`   rK   rL   rM   rN   r:   rB   rB   rC   r}        zUser.delete_messagemessage_idsc             	      r|   )a>  Shortcut for::

             await bot.delete_messages(update.effective_user.id, *argss, **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.

        )rc   r   rK   rL   rM   rN   r:   N)rR   delete_messagesr2   )r?   r   rK   rL   rM   rN   r:   rB   rB   rC   r     r~   zUser.delete_messages)rn   rp   filenamerK   rL   rM   rN   r:   photor"   captioncaption_entities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 )aa  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   ra   rn   rw   rr   rq   rp   r   r   rt   ru   rK   rL   rM   rN   r:   r   rb   rx   ry   r   NrB   )rR   
send_photor2   )r?   r   r   ra   rr   rq   r   rt   ru   r   rw   rb   rx   ry   r   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r     `   '	

zUser.send_photo)
rn   rp   rK   rL   rM   rN   r:   r   rq   r   media)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 )a  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   ra   rn   rw   rK   rL   rM   rN   r:   rp   rt   ru   r   rq   r   rb   rx   ry   NrB   )rR   send_media_groupr2   )r?   r   ra   rt   ru   rw   rb   rx   ry   rn   rp   rK   rL   rM   rN   r:   r   rq   r   rB   rB   rC   r   _  sP   &	

zUser.send_media_groupaudior   duration	performertitle	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 )aa  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   r   r   ra   rn   rw   rr   rq   rp   r   r   rt   ru   rK   rL   rM   rN   r:   r   rb   rx   ry   NrB   )rR   
send_audior2   )r?   r   r   r   r   r   ra   rr   rq   r   rt   ru   r   rw   rb   rx   ry   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r     h   )	

zUser.send_audioactionc          	         s*   |   j| j||||||||d	I dH S )a5  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

        Returns:
            :obj:`True`: On success.

        )	rc   r   ru   rK   rL   rM   rN   r:   rb   N)rR   send_chat_actionr2   )	r?   r   ru   rb   rK   rL   rM   rN   r:   rB   rB   rC   r     rf   zUser.send_chat_action)rn   rp   contactrK   rL   rM   rN   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 )ae  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r0   r6   ra   rn   rw   rr   rK   rL   rM   rN   r   r   r:   rp   rt   ru   rb   rx   ry   NrB   )rR   send_contactr2   )r?   r   r0   r6   ra   rr   r   rt   ru   rw   rb   rx   ry   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r     r{   zUser.send_contact)rn   rp   rK   rL   rM   rN   r:   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 )a_  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   ra   rn   rw   rr   rK   rL   rM   rN   r   r:   rp   rt   ru   rb   rx   ry   NrB   )rR   	send_dicer2   )r?   ra   rr   r   rt   ru   rw   rb   rx   ry   rn   rp   rK   rL   rM   rN   r:   rB   rB   rC   r   E  H   !	

zUser.send_dice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 )ag  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   ra   rn   rw   rr   rK   rL   rM   rN   rq   r   r:   r   rp   r   rt   ru   rb   rx   ry   NrB   )rR   send_documentr2   )r?   r   r   ra   rr   rq   r   r   rt   ru   r   rw   rb   rx   ry   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r   z  r   zUser.send_documentgame_short_namer   c
                   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 )a_  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   ra   rn   rw   rr   rK   rL   rM   rN   r:   rp   rt   ru   rb   rx   ry   NrB   )rR   	send_gamer2   )r?   r   ra   rr   rt   ru   rw   rb   rx   ry   rn   rp   rK   rL   rM   rN   r:   rB   rB   rC   r     r   zUser.send_gamedescriptionpayloadprovider_tokencurrencypricesr   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 )'aM  Shortcut for::

             await bot.send_invoice(update.effective_user.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.

        Note:
            |user_chat_id_note|

        .. 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.

        rc   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   rn   rw   rr   r   r   r   rK   rL   rM   rN   r:   rp   r   r   rt   ru   rx   ry   NrB   )rR   send_invoicer2   )$r?   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ra   rr   r   r   r   r   r   rt   ru   rw   rx   ry   rn   rp   rK   rL   rM   rN   r:   rB   rB   rC   r     s   >	
 !"#$
zUser.send_invoice)rn   rp   locationrK   rL   rM   rN   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 )ag  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   ra   rn   rw   rr   rK   rL   rM   rN   r   r   r:   r   r   r   rp   rt   ru   rb   rx   ry   NrB   )rR   send_locationr2   )r?   r   r   ra   rr   r   r   r   r   rt   ru   rw   rb   rx   ry   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r   U  r   zUser.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 )ai  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   r   r   rq   ra   rn   rw   rr   rK   rL   rM   rN   r:   rp   r   r   rt   ru   r   r   rb   rx   ry   r   NrB   )rR   send_animationr2   )r?   r   r   r   r   r   rq   ra   rr   r   rt   ru   r   r   rw   rb   rx   ry   r   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r     sp   +	

zUser.send_animationstickerr$   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 )ae  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   ra   rn   rw   rr   rK   rL   rM   rN   r:   rp   rt   ru   r   rb   rx   ry   NrB   )rR   send_stickerr2   )r?   r   ra   rr   rt   ru   r   rw   rb   rx   ry   rn   rp   rK   rL   rM   rN   r:   rB   rB   rC   r     sL   "	

zUser.send_stickervideor(   supports_streamingc                   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|I dH S )aa  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   ra   rn   rw   rr   rK   rL   rM   rN   r   r   rq   r   r   r:   rp   r   r   rt   ru   r   rb   rx   ry   r   NrB   )rR   
send_videor2   )r?   r   r   r   ra   rr   r   r   rq   r   r   rt   ru   r   r   rw   rb   rx   ry   r   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r     st   ,	

zUser.send_video)rn   rp   venuerK   rL   rM   rN   r:   addressfoursquare_idfoursquare_typegoogle_place_idgoogle_place_typer   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|d|d|I dH S )aa  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   r   r   ra   rn   rw   rr   rK   rL   rM   rN   r   r   r:   r   r   rp   rt   ru   rb   rx   ry   NrB   )rR   
send_venuer2   )r?   r   r   r   r   r   ra   rr   r   r   r   rt   ru   rw   rb   rx   ry   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r   a  r   zUser.send_venue
video_noter)   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 )ak  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   ra   rn   rw   rr   rK   rL   rM   rN   r:   rp   r   rt   ru   r   rb   rx   ry   NrB   )rR   send_video_noter2   )r?   r   r   r   ra   rr   rt   ru   r   rw   rb   rx   ry   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r     r{   zUser.send_video_notevoicer*   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 )aa  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   ra   rn   rw   rr   rK   rL   rM   rN   rq   r:   rp   r   r   rt   ru   rb   rx   ry   NrB   )rR   
send_voicer2   )r?   r   r   r   ra   rr   rq   r   rt   ru   rw   rb   rx   ry   rn   rp   r   rK   rL   rM   rN   r:   rB   rB   rC   r     s\   &	

zUser.send_voicequestionoptionsr   is_anonymoustype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 )!a_  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r   r   r   r   r   r   ra   rn   rw   rr   rK   rL   rM   rN   r   r   r   r   r:   rp   r   rt   ru   rb   r   r   rx   ry   NrB   )rR   	send_pollr2   )r?   r   r   r   r   r   r   r   ra   rr   r   r   r   r   r   rt   ru   rw   rb   r   r   rx   ry   rn   rp   rK   rL   rM   rN   r:   rB   rB   rC   r   "  s|   .	

zUser.send_pollfrom_chat_idr!   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|I dH S )am  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        rc   r   r`   r   rq   r   ra   rn   rw   rp   rr   rK   rL   rM   rN   r:   rt   ru   r   ry   NrB   rR   copy_messager2   )r?   r   r`   r   rq   r   ra   rr   rt   ru   rw   r   ry   rn   rp   rK   rL   rM   rN   r:   rB   rB   rC   	send_copyq  T   $	

zUser.send_copyrc   c                   r   )au  Shortcut for::

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

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

        Note:
            |user_chat_id_note|

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

        r   rc   r`   r   rq   r   ra   rn   rw   rp   rr   rK   rL   rM   rN   r:   rt   ru   r   ry   NrB   r   )r?   rc   r`   r   rq   r   ra   rr   rt   ru   rw   r   ry   rn   rp   rK   rL   rM   rN   r:   rB   rB   rC   r     r   zUser.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_user.id, *argss, **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.

        )rc   r   r   ra   rt   ru   r   rK   rL   rM   rN   r:   NrR   copy_messagesr2   )r?   r   r   ra   rt   ru   r   rK   rL   rM   rN   r:   rB   rB   rC   send_copies     zUser.send_copiesc                   r   )a  Shortcut for::

             await bot.copy_messages(from_chat_id=update.effective_user.id, *argss, **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.

        )r   rc   r   ra   rt   ru   r   rK   rL   rM   rN   r:   Nr   )r?   rc   r   ra   rt   ru   r   rK   rL   rM   rN   r:   rB   rB   rC   r     r   zUser.copy_messagesc                   .   |   j| j|||||||	|
||dI dH S )a  Shortcut for::

             await bot.forward_message(chat_id=update.effective_user.id, *argss, **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.

        )rc   r   r`   ra   rK   rL   rM   rN   r:   rt   ru   NrR   forward_messager2   )r?   r   r`   ra   rt   ru   rK   rL   rM   rN   r:   rB   rB   rC   forward_fromA  s   zUser.forward_fromc                   r   )a  Shortcut for::

             await bot.forward_message(from_chat_id=update.effective_user.id, *argss, **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.

        )r   rc   r`   ra   rK   rL   rM   rN   r:   rt   ru   Nr   )r?   rc   r`   ra   rt   ru   rK   rL   rM   rN   r:   rB   rB   rC   
forward_tok     zUser.forward_toc                   .   |   j| j|||||||||	|
dI dH S )a  Shortcut for::

             await bot.forward_messages(chat_id=update.effective_user.id, *argss, **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.

        )rc   r   r   ra   rt   ru   rK   rL   rM   rN   r:   NrR   forward_messagesr2   )r?   r   r   ra   rt   ru   rK   rL   rM   rN   r:   rB   rB   rC   forward_messages_from  r   zUser.forward_messages_fromc                   r   )a  Shortcut for::

             await bot.forward_messages(from_chat_id=update.effective_user.id, *argss, **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.

        )r   rc   r   ra   rt   ru   rK   rL   rM   rN   r:   Nr   )r?   rc   r   ra   rt   ru   rK   rL   rM   rN   r:   rB   rB   rC   forward_messages_to  r   zUser.forward_messages_toc             	      r|   )a  Shortcut for::

             await bot.approve_chat_join_request(user_id=update.effective_user.id, *args, **kwargs)

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

        Note:
            |user_chat_id_note|

        .. versionadded:: 13.8

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

        rQ   rc   rK   rL   rM   rN   r:   N)rR   approve_chat_join_requestr2   r?   rc   rK   rL   rM   rN   r:   rB   rB   rC   approve_join_request     zUser.approve_join_requestc             	      r|   )a  Shortcut for::

             await bot.decline_chat_join_request(user_id=update.effective_user.id, *args, **kwargs)

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

        Note:
            |user_chat_id_note|

        .. versionadded:: 13.8

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

        r   N)rR   decline_chat_join_requestr2   r   rB   rB   rC   decline_join_request  r   zUser.decline_join_requestmenu_buttonc             	      r|   )a  Shortcut for::

             await bot.set_chat_menu_button(chat_id=update.effective_user.id, *argss, **kwargs)

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

        .. seealso:: :meth:`get_menu_button`

        Note:
            |user_chat_id_note|

        .. versionadded:: 20.0

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rc   r   rK   rL   rM   rN   r:   N)rR   set_chat_menu_buttonr2   )r?   r   rK   rL   rM   rN   r:   rB   rB   rC   set_menu_button4  s   zUser.set_menu_buttonc                   ri   )a  Shortcut for::

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

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

        .. seealso:: :meth:`set_menu_button`

        Note:
            |user_chat_id_note|

        .. versionadded:: 20.0

        Returns:
            :class:`telegram.MenuButton`: On success, the current menu button is returned.
        rj   N)rR   get_chat_menu_buttonr2   rl   rB   rB   rC   get_menu_buttonY  s   zUser.get_menu_buttonr%   c             	      s&   |   j|| j|||||dI dH S )az  Shortcut for::

             await bot.get_user_chat_boosts(user_id=update.effective_user.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 by the user.
        )rc   rQ   rK   rL   rM   rN   r:   N)rR   get_user_chat_boostsr2   r   rB   rB   rC   get_chat_boosts|  s   zUser.get_chat_booststelegram_payment_charge_idc             	      r|   )aT  Shortcut for::

             await bot.refund_star_payment(user_id=update.effective_user.id, *args, **kwargs)

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

        .. versionadded:: 21.3

        Returns:
            :obj:`bool`: On success, :obj:`True` is returned.
        )rQ   r  rK   rL   rM   rN   r:   N)rR   refund_star_paymentr2   )r?   r  rK   rL   rM   rN   r:   rB   rB   rC   r    r~   zUser.refund_star_payment)
NNNNNNNNNN)NN)N)H__name__
__module____qualname____doc__	__slots__intstrboolr   r   r<   propertyrH   rF   rJ   r
   r   floatrT   r   r[   r   r   r_   re   rh   rm   r   r   rz   r}   r   r   r   r   tupler   r   r   send_actionr   r   r   r   objectr   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  __classcell__rB   rB   r@   rC   r+   ?   sd   N	
'
	

	

'	

&
#
	

A	
$	
#

	

F	


?
	


H	

%	

?	

8

	

D	

=	

 !"#$%&
g	

D
	


L
	

:
	


M	

H
	

@

	

C	


 
S

	

?

	

?	
	

1	
	

1
	

.
	

/
	

/
	

/
	
(
	
&	
(
'
	
$	r+   N)6r  collections.abcr   r   typingr   r   r   %telegram._inline.inlinekeyboardbuttonr   telegram._menubuttonr   telegram._telegramobjectr	   telegram._utils.defaultvaluer
   telegram._utils.typesr   r   r   r   r   telegram.helpersr   r\   r   rW   telegramr   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+   rB   rB   rB   rC   <module>   s   l