Ejemplo n.º 1
0
    def send_game(
        self,
        chat_id: Union[int, str],
        game_short_name: str,
        disable_notification: bool = None,
        reply_to_message_id: int = None,
        reply_markup: Union["pyrogram.InlineKeyboardMarkup",
                            "pyrogram.ReplyKeyboardMarkup",
                            "pyrogram.ReplyKeyboardRemove",
                            "pyrogram.ForceReply"] = None
    ) -> "pyrogram.Message":
        """Send a game.

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

            game_short_name (``str``):
                Short name of the game, serves as the unique identifier for the game. Set up your games via Botfather.

            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.

            reply_markup (:obj:`InlineKeyboardMarkup`, *optional*):
                An object for an inline keyboard. If empty, one ‘Play game_title’ button will be shown automatically.
                If not empty, the first button must launch the game.

        Returns:
            :obj:`Message`: On success, the sent game message is returned.

        Raises:
            RPCError: In case of a Telegram RPC error.
        """
        r = self.send(
            functions.messages.SendMedia(
                peer=self.resolve_peer(chat_id),
                media=types.InputMediaGame(
                    id=types.InputGameShortName(bot_id=types.InputUserSelf(),
                                                short_name=game_short_name), ),
                message="",
                silent=disable_notification or None,
                reply_to_msg_id=reply_to_message_id,
                random_id=self.rnd_id(),
                reply_markup=reply_markup.write() if reply_markup else None))

        for i in r.updates:
            if isinstance(
                    i,
                (types.UpdateNewMessage, types.UpdateNewChannelMessage)):
                return pyrogram.Message._parse(self, i.message,
                                               {i.id: i
                                                for i in r.users},
                                               {i.id: i
                                                for i in r.chats})
Ejemplo n.º 2
0
 def createConversation(self, threadId):
     """ Creates conversation for facebook threadId. Returns list of telegram parameters"""
     thread = self.fbClient.fetchThreadInfo(threadId)[threadId]
     
     # Create chat with facebook's thread name
     update = self.telegramClient.send(
         functions.messages.CreateChat(users=[types.InputUserSelf(),types.InputUser(
                 user_id=self.user.userId,
                 access_hash=self.user.accessHash
             )],
             title=thread.name
         )
     )
     chatId = update.chats[0].id
     # Returns [facebookThreadId, telegramChatId, telegramUsername] 
     return [threadId, chatId, self.username]