o
    /hJ                    @   s  d 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 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.    )datetime)TYPE_CHECKINGOptionalSequenceTuple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                H       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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 dee d ee d!ee d"ee dee	 ddHf(dIdJ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dKdLZeeeedddMee dee d ee d!ee d"ee dee	 defdNdOZdedededdddddfdedeeeeddPdQe e!dRf dSee d0ee d;ee d:ee dTeed=  d>ee d?ee dUee dBedC d1ee dDee dVee dEee dGee dWee dee d ee d!ee d"ee dee	 ddHf,dXdYZ"eeddddfdeeeeeddeddZ
d[ee d\  d0ee d>ee d?ee dBedC d1ee dDee dEee dGee dee d ee d!ee d"ee dee	 dSee d:ee dTeed=  de#d] f$d^d_Z$ddddedededddddfdedeeeeddPd`e e!daf dbee dcee ddee dSee d0ee d;ee d:ee dTeed=  d>ee d?ee deee! dBedC d1ee dDee dEee dGee dWee dee d ee d!ee d"ee dee	 ddHf0dfdgZ%		deeeedddhed?ee d1ee dee d ee d!ee d"ee dee	 defdidjZ&e&Z'	 dddeddeddddfdedeeeeddkdlee dee dee d0ee d;ee dmee d>ee d?ee dBedC d1ee dDee dEee dGee dnedo dee d ee d!ee d"ee dee	 ddHf(dpdqZ(eddeddddfdeeeeeddrd0ee d;ee dsee d>ee d?ee dBedC d1ee dDee dEee dGee dee d ee d!ee d"ee dee	 ddHf dtduZ)dededdedddddfdedeeeeddPdve e!dwf dSee d0ee d;ee d:ee dxee dTeed=  d>ee d?ee deee! dBedC d1ee dDee dEee dGee dWee dee d ee d!ee d"ee dee	 ddHf,dydzZ*ededdddfdeeeeeddrd{ed0ee d;ed| d>ee d?ee dBedC d1ee dDee dEee dGee dee d ee d!ee d"ee dee	 ddHf d}d~Z+ddddddddddeddddddedddfdeeeeeddrddede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 dGee dee d ee d!ee d"ee dee	 ddHfFddZ-ddeddddde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 dGee ded dee d ee d!ee d"ee dee	 ddHf,ddZ.ddddeeddedddddddfdedeeeeddPde e!df dbee dee dee dSee d:ee d0ee d;ee dTeed=  d>ee d?ee dUee deee! dBedC d1ee dDee dVee dEee dGee dWee dee d ee d!ee d"ee dee	 ddHf4ddZ/ededddddfdeeeeeddrde e!df d0ee d;ee d>ee d?ee dsee dBedC d1ee dDee dEee dGee dee d ee d!ee d"ee dee	 ddHf"ddZ0ddedddeddedddddddfdedeeeeddPde e!df dbee dSee d0ee d;ee dee dee d:ee dee dTeed=  d>ee d?ee dUee deee! dBedC d1ee dDee dVee dEee dGee dWee dee d ee d!ee d"ee dee	 ddHf6ddZ1dddddeddddeddddfdedeeeedddee dee dde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 dGee ded dee d ee d!ee d"ee dee	 ddHf0ddZ2ddededddddf
dedeeeeddPde e!df dbee dee d0ee d;ee d>ee d?ee deee! dBedC d1ee dDee dEee dGee dWee dee d ee d!ee d"ee dee	 ddHf(ddZ3ddedededdddfdedeeeeddPde e!df dbee dSee d0ee d;ee d:ee dTeed=  d>ee d?ee dBedC d1ee dDee dEee dGee dWee dee d ee d!ee d"ee dee	 ddHf*ddZ4dddddeddedddedddeddfdeeeeeddr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 dGee dee d ee d!ee d"ee dee	 ddHf:ddӄZ7dedededddf	deeeeeddrde eef d/edSee d:ee dTeed=  d0ee d;ee d>ee d?ee dBedC dVee dEee dGe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f	deeeeeddrde eef d/edSee d:ee dTeed=  d0ee d;ee d>ee d?ee dBedC dVee dEee dGe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 dMe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 dMe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dHf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dHfddZ=eedfeeeeddde eef dMe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 dMe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_kwargsr3   r1   r4   r7   r9   r6   r/   r0   r8   r5   r-   r.   r2   r;   c                   sr   t  j|d || _|| _|| _|| _|| _|| _|| _|| _	|	| _
|
| _|| _|| _|| _| jf| _|   d S )Nr:   )super__init__r3   r1   r4   r7   r9   r6   r/   r0   r8   r5   r-   r.   r2   	_id_attrs_freeze)selfr3   r1   r4   r7   r9   r6   r/   r0   r8   r5   r-   r.   r2   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`.
        @)r9   	full_namer@   rC   rC   rD   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`.
         )r7   r1   rH   rC   rC   rD   rG      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)r9   rH   rC   rC   rD   link   s   z	User.link)read_timeoutwrite_timeoutconnect_timeoutpool_timeoutr;   offsetlimitrL   rM   rN   rO   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_idrP   rQ   rL   rM   rN   rO   r;   N)get_botget_user_profile_photosr3   )r@   rP   rQ   rL   rM   rN   rO   r;   rC   rC   rD   get_profile_photos   s   zUser.get_profile_photosrI   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_markdownr3   rG   r@   rI   rC   rC   rD   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).

           )versionrW   rY   rC   rC   rD   mention_markdown_v2  s   	zUser.mention_markdown_v2c                 C   rV   )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_htmlr3   rG   rY   rC   rC   rD   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   rG   r3   rY   rC   rC   rD   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_idra   rb   rL   rM   rN   rO   rc   r;   N)rS   pin_chat_messager3   )	r@   ra   rb   rc   rL   rM   rN   rO   r;   rC   rC   rD   pin_message8     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.

        )rd   rL   rM   rN   rO   r;   ra   rc   N)rS   unpin_chat_messager3   )r@   ra   rc   rL   rM   rN   rO   r;   rC   rC   rD   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.

        rd   rL   rM   rN   rO   r;   N)rS   unpin_all_chat_messagesr3   r@   rL   rM   rN   rO   r;   rC   rC   rD   unpin_all_messages  s   zUser.unpin_all_messages)reply_to_message_iddisable_web_page_previewallow_sending_without_replyrL   rM   rN   rO   r;   r^   
parse_modereply_markupentitiesr!   protect_contentmessage_thread_idlink_preview_optionsr   reply_parametersr$   message_effect_idro   rp   rq   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|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.

        rd   r^   rr   rp   rw   rb   ro   rx   rs   rq   rt   ru   rv   rL   rM   rN   rO   r;   rc   ry   NrC   )rS   send_messager3   )r@   r^   rr   rb   rs   rt   ru   rv   rw   rx   rc   ry   ro   rp   rq   rL   rM   rN   rO   r;   rC   rC   rD   rz     T   $	

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.

        )rd   ra   rL   rM   rN   rO   r;   N)rS   delete_messager3   )r@   ra   rL   rM   rN   rO   r;   rC   rC   rD   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.

        )rd   r   rL   rM   rN   rO   r;   N)rS   delete_messagesr3   )r@   r   rL   rM   rN   rO   r;   rC   rC   rD   r     r~   zUser.delete_messages)ro   rq   filenamerL   rM   rN   rO   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|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.

        rd   r   r   rb   ro   rx   rs   rr   rq   r   r   ru   rv   rL   rM   rN   rO   r;   r   rc   ry   r   NrC   )rS   
send_photor3   )r@   r   r   rb   rs   rr   r   ru   rv   r   rx   rc   ry   r   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r     \   &	

zUser.send_photo)
ro   rq   rL   rM   rN   rO   r;   r   rr   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|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.

        rd   r   rb   ro   rx   rL   rM   rN   rO   r;   rq   ru   rv   r   rr   r   rc   ry   NrC   )rS   send_media_groupr3   )r@   r   rb   ru   rv   rx   rc   ry   ro   rq   rL   rM   rN   rO   r;   r   rr   r   rC   rC   rD   r   Z  sL   %	

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|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.

        rd   r   r   r   r   r   rb   ro   rx   rs   rr   rq   r   r   ru   rv   rL   rM   rN   rO   r;   r   rc   ry   NrC   )rS   
send_audior3   )r@   r   r   r   r   r   rb   rs   rr   r   ru   rv   r   rx   rc   ry   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r     d   (	

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.

        )	rd   r   rv   rL   rM   rN   rO   r;   rc   N)rS   send_chat_actionr3   )	r@   r   rv   rc   rL   rM   rN   rO   r;   rC   rC   rD   r     rg   zUser.send_chat_action)ro   rq   contactrL   rM   rN   rO   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|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.

        rd   r   r1   r7   rb   ro   rx   rs   rL   rM   rN   rO   r   r   r;   rq   ru   rv   rc   ry   NrC   )rS   send_contactr3   )r@   r   r1   r7   rb   rs   r   ru   rv   rx   rc   ry   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r     r{   zUser.send_contact)ro   rq   rL   rM   rN   rO   r;   emojic	                   sz   |   jdi d| j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.

        rd   rb   ro   rx   rs   rL   rM   rN   rO   r   r;   rq   ru   rv   rc   ry   NrC   )rS   	send_dicer3   )r@   rb   rs   r   ru   rv   rx   rc   ry   ro   rq   rL   rM   rN   rO   r;   rC   rC   rD   r   :  D    	

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|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.

        rd   r   r   r   rb   ro   rx   rs   rL   rM   rN   rO   rr   r   r;   r   rq   r   ru   rv   rc   ry   NrC   )rS   send_documentr3   )r@   r   r   rb   rs   rr   r   r   ru   rv   r   rx   rc   ry   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r   m  r   zUser.send_documentgame_short_namer   c	                   sz   |   jdi d| j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.

        rd   r   rb   ro   rx   rs   rL   rM   rN   rO   r;   rq   ru   rv   rc   ry   NrC   )rS   	send_gamer3   )r@   r   rb   rs   ru   rv   rx   rc   ry   ro   rq   rL   rM   rN   rO   r;   rC   rC   rD   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#|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.

        rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rb   ro   rx   rs   r   r   r   rL   rM   rN   rO   r;   rq   r   r   ru   rv   ry   NrC   )rS   send_invoicer3   )#r@   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rb   rs   r   r   r   r   r   ru   rv   rx   ry   ro   rq   rL   rM   rN   rO   r;   rC   rC   rD   r     s   =	
 !"#
zUser.send_invoice)ro   rq   locationrL   rM   rN   rO   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|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.

        rd   r   r   rb   ro   rx   rs   rL   rM   rN   rO   r   r   r;   r   r   r   rq   ru   rv   rc   ry   NrC   )rS   send_locationr3   )r@   r   r   rb   rs   r   r   r   r   ru   rv   rx   rc   ry   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r   B  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|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.

        rd   r   r   r   r   r   rr   rb   ro   rx   rs   rL   rM   rN   rO   r;   rq   r   r   ru   rv   r   r   rc   ry   r   NrC   )rS   send_animationr3   )r@   r   r   r   r   r   rr   rb   rs   r   ru   rv   r   r   rx   rc   ry   r   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r     sl   *	

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|	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.

        rd   r   rb   ro   rx   rs   rL   rM   rN   rO   r;   rq   ru   rv   r   rc   ry   NrC   )rS   send_stickerr3   )r@   r   rb   rs   ru   rv   r   rx   rc   ry   ro   rq   rL   rM   rN   rO   r;   rC   rC   rD   r     sH   !	

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|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.

        rd   r   r   r   rb   ro   rx   rs   rL   rM   rN   rO   r   r   rr   r   r   r;   rq   r   r   ru   rv   r   rc   ry   r   NrC   )rS   
send_videor3   )r@   r   r   r   rb   rs   r   r   rr   r   r   ru   rv   r   r   rx   rc   ry   r   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r     sp   +	

zUser.send_video)ro   rq   venuerL   rM   rN   rO   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|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.

        rd   r   r   r   r   r   rb   ro   rx   rs   rL   rM   rN   rO   r   r   r;   r   r   rq   ru   rv   rc   ry   NrC   )rS   
send_venuer3   )r@   r   r   r   r   r   rb   rs   r   r   r   ru   rv   rx   rc   ry   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r   F  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|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.

        rd   r   r   r   rb   ro   rx   rs   rL   rM   rN   rO   r;   rq   r   ru   rv   r   rc   ry   NrC   )rS   send_video_noter3   )r@   r   r   r   rb   rs   ru   rv   r   rx   rc   ry   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   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|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.

        rd   r   r   r   rb   ro   rx   rs   rL   rM   rN   rO   rr   r;   rq   r   r   ru   rv   rc   ry   NrC   )rS   
send_voicer3   )r@   r   r   r   rb   rs   rr   r   ru   rv   rx   rc   ry   ro   rq   r   rL   rM   rN   rO   r;   rC   rC   rD   r     sX   %	

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|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.

        rd   r   r   r   r   r   r   r   rb   ro   rx   rs   rL   rM   rN   rO   r   r   r   r   r;   rq   r   ru   rv   rc   r   r   ry   NrC   )rS   	send_pollr3   )r@   r   r   r   r   r   r   r   rb   rs   r   r   r   r   r   ru   rv   rx   rc   r   r   ry   ro   rq   rL   rM   rN   rO   r;   rC   rC   rD   r     sx   -	

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|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.

        rd   r   ra   r   rr   r   rb   ro   rx   rq   rs   rL   rM   rN   rO   r;   ru   rv   r   NrC   rS   copy_messager3   )r@   r   ra   r   rr   r   rb   rs   ru   rv   rx   r   ro   rq   rL   rM   rN   rO   r;   rC   rC   rD   	send_copyN  P   #	

zUser.send_copyrd   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   rd   ra   r   rr   r   rb   ro   rx   rq   rs   rL   rM   rN   rO   r;   ru   rv   r   NrC   r   )r@   rd   ra   r   rr   r   rb   rs   ru   rv   rx   r   ro   rq   rL   rM   rN   rO   r;   rC   rC   rD   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.

        )rd   r   r   rb   ru   rv   r   rL   rM   rN   rO   r;   NrS   copy_messagesr3   )r@   r   r   rb   ru   rv   r   rL   rM   rN   rO   r;   rC   rC   rD   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   rd   r   rb   ru   rv   r   rL   rM   rN   rO   r;   Nr   )r@   rd   r   rb   ru   rv   r   rL   rM   rN   rO   r;   rC   rC   rD   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.

        )rd   r   ra   rb   rL   rM   rN   rO   r;   ru   rv   NrS   forward_messager3   )r@   r   ra   rb   ru   rv   rL   rM   rN   rO   r;   rC   rC   rD   forward_from  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   rd   ra   rb   rL   rM   rN   rO   r;   ru   rv   Nr   )r@   rd   ra   rb   ru   rv   rL   rM   rN   rO   r;   rC   rC   rD   
forward_toD     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.

        )rd   r   r   rb   ru   rv   rL   rM   rN   rO   r;   NrS   forward_messagesr3   )r@   r   r   rb   ru   rv   rL   rM   rN   rO   r;   rC   rC   rD   forward_messages_fromo  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   rd   r   rb   ru   rv   rL   rM   rN   rO   r;   Nr   )r@   rd   r   rb   ru   rv   rL   rM   rN   rO   r;   rC   rC   rD   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.

        rR   rd   rL   rM   rN   rO   r;   N)rS   approve_chat_join_requestr3   r@   rd   rL   rM   rN   rO   r;   rC   rC   rD   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)rS   decline_chat_join_requestr3   r   rC   rC   rD   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.
        )rd   r   rL   rM   rN   rO   r;   N)rS   set_chat_menu_buttonr3   )r@   r   rL   rM   rN   rO   r;   rC   rC   rD   set_menu_button  s   zUser.set_menu_buttonc                   rj   )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.
        rk   N)rS   get_chat_menu_buttonr3   rm   rC   rC   rD   get_menu_button2  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.
        )rd   rR   rL   rM   rN   rO   r;   N)rS   get_user_chat_boostsr3   r   rC   rC   rD   get_chat_boostsU  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.
        )rR   r  rL   rM   rN   rO   r;   N)rS   refund_star_paymentr3   )r@   r  rL   rM   rN   rO   r;   rC   rC   rD   r  u  r~   zUser.refund_star_payment)
NNNNNNNNNN)NN)N)H__name__
__module____qualname____doc__	__slots__intstrboolr   r   r=   propertyrI   rG   rK   r   r   floatrU   r   r\   r   r   r`   rf   ri   rn   r   r   rz   r}   r   r   r   r   r   r   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__rC   rC   rA   rD   r,   >   s   N	
'
	

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

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


F	

%	

=	
6

	

B	
;	

 !"#$%
e	

B
	


J
	

8
	


K	

F
	

>

	

A	



Q

	

=

	

=	
	

1	
	

1
	

.
	

/
	

/
	

/
	
(
	
&	
(
'
	
$	r,   N)6r  r   typingr   r   r   r   r   %telegram._inline.inlinekeyboardbuttonr   telegram._menubuttonr	   telegram._telegramobjectr
   telegram._utils.defaultvaluer   telegram._utils.typesr   r   r   r   r   telegram.helpersr   r]   r   rX   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,   rC   rC   rC   rD   <module>   s   l