mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-29 05:18:10 +00:00
Add Game type
This commit is contained in:
parent
7cb1c99e28
commit
7d061a1b5c
@ -32,7 +32,7 @@ from .client.types import (
|
|||||||
Location, Message, MessageEntity, Dialog, Dialogs, Photo, PhotoSize, Sticker, User, UserStatus,
|
Location, Message, MessageEntity, Dialog, Dialogs, Photo, PhotoSize, Sticker, User, UserStatus,
|
||||||
UserProfilePhotos, Venue, Animation, Video, VideoNote, Voice, CallbackQuery, Messages, ForceReply,
|
UserProfilePhotos, Venue, Animation, Video, VideoNote, Voice, CallbackQuery, Messages, ForceReply,
|
||||||
InlineKeyboardButton, InlineKeyboardMarkup, KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove,
|
InlineKeyboardButton, InlineKeyboardMarkup, KeyboardButton, ReplyKeyboardMarkup, ReplyKeyboardRemove,
|
||||||
Poll, PollOption, ChatPreview, StopPropagation
|
Poll, PollOption, ChatPreview, StopPropagation, Game
|
||||||
)
|
)
|
||||||
from .client import (
|
from .client import (
|
||||||
Client, ChatAction, ParseMode, Emoji,
|
Client, ChatAction, ParseMode, Emoji,
|
||||||
|
@ -31,7 +31,7 @@ from .input_media import (
|
|||||||
from .messages_and_media import (
|
from .messages_and_media import (
|
||||||
Audio, Contact, Document, Animation, Location, Photo, PhotoSize,
|
Audio, Contact, Document, Animation, Location, Photo, PhotoSize,
|
||||||
Sticker, Venue, Video, VideoNote, Voice, UserProfilePhotos,
|
Sticker, Venue, Video, VideoNote, Voice, UserProfilePhotos,
|
||||||
Message, Messages, MessageEntity, Poll, PollOption
|
Message, Messages, MessageEntity, Poll, PollOption, Game
|
||||||
)
|
)
|
||||||
from .user_and_chats import (
|
from .user_and_chats import (
|
||||||
Chat, ChatMember, ChatMembers, ChatPhoto,
|
Chat, ChatMember, ChatMembers, ChatPhoto,
|
||||||
|
@ -34,3 +34,4 @@ from .venue import Venue
|
|||||||
from .video import Video
|
from .video import Video
|
||||||
from .video_note import VideoNote
|
from .video_note import VideoNote
|
||||||
from .voice import Voice
|
from .voice import Voice
|
||||||
|
from .game import Game
|
||||||
|
98
pyrogram/client/types/messages_and_media/game.py
Normal file
98
pyrogram/client/types/messages_and_media/game.py
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
# Pyrogram - Telegram MTProto API Client Library for Python
|
||||||
|
# Copyright (C) 2017-2019 Dan Tès <https://github.com/delivrance>
|
||||||
|
#
|
||||||
|
# This file is part of Pyrogram.
|
||||||
|
#
|
||||||
|
# Pyrogram is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Lesser General Public License as published
|
||||||
|
# by the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# Pyrogram is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Lesser General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
|
# along with Pyrogram. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import pyrogram
|
||||||
|
from pyrogram.api import types
|
||||||
|
from .animation import Animation
|
||||||
|
from .photo import Photo
|
||||||
|
from ..pyrogram_type import PyrogramType
|
||||||
|
|
||||||
|
|
||||||
|
class Game(PyrogramType):
|
||||||
|
"""This object represents a game.
|
||||||
|
Use BotFather to create and edit games, their short names will act as unique identifiers.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
id (``int``):
|
||||||
|
Unique identifier of the game.
|
||||||
|
|
||||||
|
title (``str``):
|
||||||
|
Title of the game.
|
||||||
|
|
||||||
|
short_name (``str``):
|
||||||
|
Unique short name of the game.
|
||||||
|
|
||||||
|
description (``str``):
|
||||||
|
Description of the game.
|
||||||
|
|
||||||
|
photo (:obj:`Photo <pyrogram.Photo>`):
|
||||||
|
Photo that will be displayed in the game message in chats.
|
||||||
|
|
||||||
|
animation (:obj:`Animation <pyrogram.Animation>`, *optional*):
|
||||||
|
Animation that will be displayed in the game message in chats.
|
||||||
|
Upload via BotFather.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self,
|
||||||
|
*,
|
||||||
|
client: "pyrogram.client.ext.BaseClient",
|
||||||
|
id: int,
|
||||||
|
title: str,
|
||||||
|
short_name: str,
|
||||||
|
description: str,
|
||||||
|
photo: Photo,
|
||||||
|
animation: Animation = None):
|
||||||
|
super().__init__(client)
|
||||||
|
|
||||||
|
self.id = id
|
||||||
|
self.title = title
|
||||||
|
self.short_name = short_name
|
||||||
|
self.description = description
|
||||||
|
self.photo = photo
|
||||||
|
self.animation = animation
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _parse(client, message: types.Message) -> "Game":
|
||||||
|
game = message.media.game # type: types.Game
|
||||||
|
animation = None
|
||||||
|
|
||||||
|
if game.document:
|
||||||
|
attributes = {type(i): i for i in game.document.attributes}
|
||||||
|
|
||||||
|
file_name = getattr(
|
||||||
|
attributes.get(
|
||||||
|
types.DocumentAttributeFilename, None
|
||||||
|
), "file_name", None
|
||||||
|
)
|
||||||
|
|
||||||
|
animation = Animation._parse(
|
||||||
|
client,
|
||||||
|
game.document,
|
||||||
|
attributes.get(types.DocumentAttributeVideo, None),
|
||||||
|
file_name
|
||||||
|
)
|
||||||
|
|
||||||
|
return Game(
|
||||||
|
id=game.id,
|
||||||
|
title=game.title,
|
||||||
|
short_name=game.short_name,
|
||||||
|
description=game.description,
|
||||||
|
photo=Photo._parse(client, game.photo),
|
||||||
|
animation=animation,
|
||||||
|
client=client
|
||||||
|
)
|
Loading…
x
Reference in New Issue
Block a user