mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-12 18:19:34 +00:00
Bot API 3.3.
This commit is contained in:
parent
6696c8e9ad
commit
c8349112d0
3 changed files with 39 additions and 14 deletions
|
|
@ -11,7 +11,9 @@ class Chat(Deserializable):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, id, type, title, username, first_name, last_name, all_members_are_administrators, photo,
|
def __init__(self, id, type, title, username, first_name, last_name, all_members_are_administrators, photo,
|
||||||
description, invite_link):
|
description, invite_link, pinned_message):
|
||||||
|
from .message import Message
|
||||||
|
|
||||||
self.id: int = id
|
self.id: int = id
|
||||||
self.type: str = type
|
self.type: str = type
|
||||||
self.title: str = title
|
self.title: str = title
|
||||||
|
|
@ -22,9 +24,12 @@ class Chat(Deserializable):
|
||||||
self.photo: ChatPhoto = photo
|
self.photo: ChatPhoto = photo
|
||||||
self.description: str = description
|
self.description: str = description
|
||||||
self.invite_link: str = invite_link
|
self.invite_link: str = invite_link
|
||||||
|
self.pinned_message: Message = pinned_message
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, raw_data) -> 'Chat':
|
def de_json(cls, raw_data) -> 'Chat':
|
||||||
|
from .message import Message
|
||||||
|
|
||||||
id: int = raw_data.get('id')
|
id: int = raw_data.get('id')
|
||||||
type: str = raw_data.get('type')
|
type: str = raw_data.get('type')
|
||||||
title: str = raw_data.get('title')
|
title: str = raw_data.get('title')
|
||||||
|
|
@ -35,9 +40,10 @@ class Chat(Deserializable):
|
||||||
photo = raw_data.get('photo')
|
photo = raw_data.get('photo')
|
||||||
description = raw_data.get('description')
|
description = raw_data.get('description')
|
||||||
invite_link = raw_data.get('invite_link')
|
invite_link = raw_data.get('invite_link')
|
||||||
|
pinned_message: Message = Message.deserialize(raw_data.get('pinned_message'))
|
||||||
|
|
||||||
return Chat(id, type, title, username, first_name, last_name, all_members_are_administrators, photo,
|
return Chat(id, type, title, username, first_name, last_name, all_members_are_administrators, photo,
|
||||||
description, invite_link)
|
description, invite_link, pinned_message)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def full_name(self):
|
def full_name(self):
|
||||||
|
|
|
||||||
|
|
@ -29,11 +29,11 @@ class Message(Deserializable):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, message_id, from_user, date, chat, forward_from, forward_from_chat, forward_from_message_id,
|
def __init__(self, message_id, from_user, date, chat, forward_from, forward_from_chat, forward_from_message_id,
|
||||||
forward_date, reply_to_message, edit_date, text, entities, audio, document, game, photo, sticker,
|
forward_signature, forward_date, reply_to_message, edit_date, author_signature, text, entities, audio,
|
||||||
video, voice, video_note, new_chat_members, caption, contact, location, venue, left_chat_member,
|
document, game, photo, sticker, video, voice, video_note, new_chat_members, caption, contact, location,
|
||||||
new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created, supergroup_chat_created,
|
venue, left_chat_member, new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created,
|
||||||
channel_chat_created, migrate_to_chat_id, migrate_from_chat_id, pinned_message, invoice,
|
supergroup_chat_created, channel_chat_created, migrate_to_chat_id, migrate_from_chat_id,
|
||||||
successful_payment, content_type):
|
pinned_message, invoice, successful_payment, content_type):
|
||||||
self.message_id: int = message_id
|
self.message_id: int = message_id
|
||||||
self.from_user: User = from_user
|
self.from_user: User = from_user
|
||||||
self.date: datetime.datetime = date
|
self.date: datetime.datetime = date
|
||||||
|
|
@ -41,9 +41,11 @@ class Message(Deserializable):
|
||||||
self.forward_from: User = forward_from
|
self.forward_from: User = forward_from
|
||||||
self.forward_from_chat: Chat = forward_from_chat
|
self.forward_from_chat: Chat = forward_from_chat
|
||||||
self.forward_from_message_id: int = forward_from_message_id
|
self.forward_from_message_id: int = forward_from_message_id
|
||||||
|
self.forward_signature: str = forward_signature
|
||||||
self.forward_date: datetime.datetime = forward_date
|
self.forward_date: datetime.datetime = forward_date
|
||||||
self.reply_to_message: Message = reply_to_message
|
self.reply_to_message: Message = reply_to_message
|
||||||
self.edit_date: datetime.datetime = edit_date
|
self.edit_date: datetime.datetime = edit_date
|
||||||
|
self.author_signature: str = author_signature
|
||||||
self.text: str = text
|
self.text: str = text
|
||||||
self.entities = entities
|
self.entities = entities
|
||||||
self.audio = audio
|
self.audio = audio
|
||||||
|
|
@ -83,9 +85,11 @@ class Message(Deserializable):
|
||||||
forward_from = User.deserialize(raw_data.get('forward_from', {}))
|
forward_from = User.deserialize(raw_data.get('forward_from', {}))
|
||||||
forward_from_chat = Chat.deserialize(raw_data.get('forward_from_chat', {}))
|
forward_from_chat = Chat.deserialize(raw_data.get('forward_from_chat', {}))
|
||||||
forward_from_message_id = raw_data.get('forward_from_message_id')
|
forward_from_message_id = raw_data.get('forward_from_message_id')
|
||||||
|
forward_signature = raw_data.get('forward_signature')
|
||||||
forward_date = cls._parse_date(raw_data.get('forward_date', 0))
|
forward_date = cls._parse_date(raw_data.get('forward_date', 0))
|
||||||
reply_to_message = Message.deserialize(raw_data.get('reply_to_message', {}))
|
reply_to_message = Message.deserialize(raw_data.get('reply_to_message', {}))
|
||||||
edit_date = cls._parse_date(raw_data.get('edit_date', 0))
|
edit_date = cls._parse_date(raw_data.get('edit_date', 0))
|
||||||
|
author_signature = raw_data.get('author_signature')
|
||||||
text = raw_data.get('text')
|
text = raw_data.get('text')
|
||||||
entities = MessageEntity.deserialize(raw_data.get('entities'))
|
entities = MessageEntity.deserialize(raw_data.get('entities'))
|
||||||
audio = Audio.deserialize(raw_data.get('audio'))
|
audio = Audio.deserialize(raw_data.get('audio'))
|
||||||
|
|
@ -142,11 +146,11 @@ class Message(Deserializable):
|
||||||
content_type = ContentType.UNKNOWN[0]
|
content_type = ContentType.UNKNOWN[0]
|
||||||
|
|
||||||
return Message(message_id, from_user, date, chat, forward_from, forward_from_chat, forward_from_message_id,
|
return Message(message_id, from_user, date, chat, forward_from, forward_from_chat, forward_from_message_id,
|
||||||
forward_date, reply_to_message, edit_date, text, entities, audio, document, game, photo, sticker,
|
forward_signature, forward_date, reply_to_message, edit_date, author_signature, text, entities,
|
||||||
video, voice, video_note, new_chat_members, caption, contact, location, venue, left_chat_member,
|
audio, document, game, photo, sticker, video, voice, video_note, new_chat_members, caption,
|
||||||
new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created, supergroup_chat_created,
|
contact, location, venue, left_chat_member, new_chat_title, new_chat_photo, delete_chat_photo,
|
||||||
channel_chat_created, migrate_to_chat_id, migrate_from_chat_id, pinned_message, invoice,
|
group_chat_created, supergroup_chat_created, channel_chat_created, migrate_to_chat_id,
|
||||||
successful_payment, content_type)
|
migrate_from_chat_id, pinned_message, invoice, successful_payment, content_type)
|
||||||
|
|
||||||
def is_command(self):
|
def is_command(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
from ..utils.markdown import link, hlink
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import babel
|
import babel
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
|
@ -13,8 +15,9 @@ class User(Deserializable):
|
||||||
https://core.telegram.org/bots/api#user
|
https://core.telegram.org/bots/api#user
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, id, first_name, last_name, username, language_code):
|
def __init__(self, id, is_bot, first_name, last_name, username, language_code):
|
||||||
self.id: int = id
|
self.id: int = id
|
||||||
|
self.is_bot: bool = is_bot
|
||||||
self.first_name: str = first_name
|
self.first_name: str = first_name
|
||||||
self.last_name: str = last_name
|
self.last_name: str = last_name
|
||||||
self.username: str = username
|
self.username: str = username
|
||||||
|
|
@ -23,12 +26,13 @@ class User(Deserializable):
|
||||||
@classmethod
|
@classmethod
|
||||||
def de_json(cls, raw_data: str or dict) -> 'User':
|
def de_json(cls, raw_data: str or dict) -> 'User':
|
||||||
id = raw_data.get('id')
|
id = raw_data.get('id')
|
||||||
|
is_bot = raw_data.get('is_bot')
|
||||||
first_name = raw_data.get('first_name')
|
first_name = raw_data.get('first_name')
|
||||||
last_name = raw_data.get('last_name')
|
last_name = raw_data.get('last_name')
|
||||||
username = raw_data.get('username')
|
username = raw_data.get('username')
|
||||||
language_code = raw_data.get('language_code')
|
language_code = raw_data.get('language_code')
|
||||||
|
|
||||||
return User(id, first_name, last_name, username, language_code)
|
return User(id, is_bot, first_name, last_name, username, language_code)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def full_name(self):
|
def full_name(self):
|
||||||
|
|
@ -69,5 +73,16 @@ class User(Deserializable):
|
||||||
setattr(self, '_locale', babel.core.Locale.parse(self.language_code, sep='-'))
|
setattr(self, '_locale', babel.core.Locale.parse(self.language_code, sep='-'))
|
||||||
return getattr(self, '_locale')
|
return getattr(self, '_locale')
|
||||||
|
|
||||||
|
@property
|
||||||
|
def url(self):
|
||||||
|
return f"tg://user?id={self.id}"
|
||||||
|
|
||||||
|
def get_mention(self, name=None, as_html=False):
|
||||||
|
if name is None:
|
||||||
|
name = self.mention
|
||||||
|
if as_html:
|
||||||
|
return hlink(name, self.url)
|
||||||
|
return link(name, self.url)
|
||||||
|
|
||||||
async def get_user_profile_photos(self, offset=None, limit=None):
|
async def get_user_profile_photos(self, offset=None, limit=None):
|
||||||
return await self.bot.get_user_profile_photos(self.id, offset, limit)
|
return await self.bot.get_user_profile_photos(self.id, offset, limit)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue