
    i                         S SK r S SKJr  S SKJrJrJr  S SKrS SKJrJrJ	r	  \ R                  " \5      r " S S5      rg)    N)datetime)UnionListOptional)typesenumsutilsc            )           \ rS rSr               SSSS\\\4   S\\\4   S\S\S	\S
   S\S   S\	S\S\S\\\4   S\
S\	S\	S\	S\S\	S\S\S   SS4(S jjrSrg)CopyMessage   Nselfzpyrogram.Clientchat_idfrom_chat_id
message_idcaption
parse_modezenums.ParseModecaption_entitiesztypes.MessageEntitydisable_notificationmessage_thread_idreply_to_message_idreply_to_chat_idschedule_dateprotect_contenthas_spoilershow_caption_above_mediabusiness_connection_idallow_paid_broadcastpaid_message_star_countreply_markup)ztypes.InlineKeyboardMarkupztypes.ReplyKeyboardMarkupztypes.ReplyKeyboardRemoveztypes.ForceReplyreturnztypes.Messagec                    #    U R                  X#S9I Sh  vN nUR                  UUUUUUU	U
UUUUUUUUS9I Sh  vN $  N* N7f)al  Copy messages of any kind.

The method is analogous to the method :meth:`~Client.forward_messages`, but the copied message doesn't have a
link to the original message.

.. include:: /_includes/usable-by/users-bots.rst

Parameters:
    chat_id (``int`` | ``str``):
        Unique identifier (int) or username (str) of the target chat.
        For your personal cloud (Saved Messages) you can simply use "me" or "self".
        For a contact that exists in your Telegram address book you can use his phone number (str).

    from_chat_id (``int`` | ``str``):
        Unique identifier (int) or username (str) of the source chat where the original message was sent.
        For your personal cloud (Saved Messages) you can simply use "me" or "self".
        For a contact that exists in your Telegram address book you can use his phone number (str).

    message_id (``int``):
        Message identifier in the chat specified in *from_chat_id*.

    caption (``string``, *optional*):
        New caption for media, 0-1024 characters after entities parsing.
        If not specified, the original caption is kept.
        Pass "" (empty string) to remove the caption.

    parse_mode (:obj:`~pyrogram.enums.ParseMode`, *optional*):
        By default, texts are parsed using both Markdown and HTML styles.
        You can combine both syntaxes together.

    caption_entities (List of :obj:`~pyrogram.types.MessageEntity`):
        List of special entities that appear in the new caption, which can be specified instead of *parse_mode*.

    disable_notification (``bool``, *optional*):
        Sends the message silently.
        Users will receive a notification with no sound.

    message_thread_id (``int``, *optional*):
        Unique identifier for the target message thread (topic) of the forum.
        For supergroups only.

    reply_to_message_id (``int``, *optional*):
        If the message is a reply, ID of the original message.

    reply_to_chat_id (``int``, *optional*):
        If the message is a reply, ID of the original chat.

    schedule_date (:py:obj:`~datetime.datetime`, *optional*):
        Date when the message will be automatically sent.

    protect_content (``bool``, *optional*):
        Protects the contents of the sent message from forwarding and saving.

    has_spoiler (``bool``, *optional*):
        True, if the message media is covered by a spoiler animation.

    show_caption_above_media (``bool``, *optional*):
        If True, caption must be shown above the message media.

    business_connection_id (``str``, *optional*):
        Unique identifier of the business connection on behalf of which the message will be sent.

    reply_markup (:obj:`~pyrogram.types.InlineKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardMarkup` | :obj:`~pyrogram.types.ReplyKeyboardRemove` | :obj:`~pyrogram.types.ForceReply`, *optional*):
        Additional interface options. An object for an inline keyboard, custom reply keyboard,
        instructions to remove reply keyboard or to force a reply from the user.

    allow_paid_broadcast (``bool``, *optional*):
        If True, you will be allowed to send up to 1000 messages per second.
        Ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message.
        The relevant Stars will be withdrawn from the bot's balance.
        For bots only.

    paid_message_star_count (``int``, *optional*):
        The number of Telegram Stars the user agreed to pay to send the messages.

Returns:
    :obj:`~pyrogram.types.Message`: On success, the copied message is returned.

Example:
    .. code-block:: python

        # Copy a message
        await app.copy_message(to_chat, from_chat, 123)

)r   message_idsN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )get_messagescopy)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   messages                       S/app/mltbenv/lib/python3.13/site-packages/pyrogram/methods/messages/copy_message.pycopy_messageCopyMessage.copy_message   st     ^ (,'8'8'8'f!f\\!-!5/ 3-'+#%=!5$;%#9! " 
 
 	
 "g
s   AA %AAAA )NNNNNNNNNNNNNNN)__name__
__module____qualname____firstlineno__r   intstrr   r   boolr   r'   __static_attributes__r)       r&   r   r      sE    268<%)!%#',0"& $ )-&*%)'+ 1B
B
sCxB
 CHoB
 	B

 B
 ./B
 45B
 #B
 B
 !B
  S/B
  B
 B
 B
 #'B
  !$!B
" ##B
$ "%%B
& 
'B
2 
3B
 B
r2   r   )loggingr   typingr   r   r   pyrogramr   r   r	   	getLoggerr*   logr   r)   r2   r&   <module>r8      s8   &   ( (  ( (!C
 C
r2   