B
    fd                 @   sR   d dl m Z  d dlmZmZ d dlZd dlmZmZ d dlmZ G dd dZdS )    )datetime)UnionOptionalN)rawutils)typesc               @   s<   e Zd Zd	deeef eeeeeed ed d	ddZ	dS )
SendDice   🎲Nzpyrogram.Client)ztypes.InlineKeyboardMarkupztypes.ReplyKeyboardMarkupztypes.ReplyKeyboardRemoveztypes.ForceReplyztypes.Message)	selfchat_idemojidisable_notificationreply_to_message_idschedule_dateprotect_contentreply_markupreturnc       
         s   |  tjjj| |I dH tjj|d|p,d||  t	
|||rR|| I dH nddd	I dH }xj|jD ]`}	t|	tjjtjjtjjfrltjj| |	jdd |jD dd |jD t|	tjjdI dH S qlW dS )	u  Send a dice with a random value from 1 to 6.

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

            emoji (``str``, *optional*):
                Emoji on which the dice throw animation is based.
                Currently, must be one of "🎲", "🎯", "🏀", "⚽", "🎳", or "🎰".
                Dice can have values 1-6 for "🎲", "🎯" and "🎳", values 1-5 for "🏀" and "⚽", and
                values 1-64 for "🎰".
                Defaults to "🎲".

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

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

            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.

            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.

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

        Example:
            .. code-block:: python

                # Send a dice
                await app.send_dice(chat_id)

                # Send a dart
                await app.send_dice(chat_id, "🎯")

                # Send a basketball
                await app.send_dice(chat_id, "🏀")
        N)Zemoticon )	ZpeerZmediaZsilentZreply_to_msg_idZ	random_idr   Z
noforwardsr   messagec             S   s   i | ]}||j qS  )id).0ir   r   G/tmp/pip-unpacked-wheel-rcokkf2l/pyrogram/methods/messages/send_dice.py
<dictcomp>q   s    z&SendDice.send_dice.<locals>.<dictcomp>c             S   s   i | ]}||j qS r   )r   )r   r   r   r   r   r   r   s    )Zis_scheduled)Zinvoker   Z	functionsmessagesZ	SendMediaZresolve_peerr   ZInputMediaDiceZrnd_idr   Zdatetime_to_timestampwriteZupdates
isinstanceZUpdateNewMessageZUpdateNewChannelMessageZUpdateNewScheduledMessageMessage_parser   ZusersZchats)
r
   r   r   r   r   r   r   r   rr   r   r   r   	send_dice   s(    A
zSendDice.send_dice)r	   NNNNN)
__name__
__module____qualname__r   intstrboolr   r   r!   r   r   r   r   r      s        r   )	r   typingr   r   Zpyrogramr   r   r   r   r   r   r   r   <module>   s
   