Пользователи¶
User¶
Базовая модель пользователя MAX.
class User(MaxObject):
user_id: int
first_name: str
last_name: str | None = None
username: str | None = None
is_bot: bool = False
last_activity_time: int | None = None
name: str | None = None # deprecated
Поля¶
| Поле | Тип | Описание |
|---|---|---|
user_id |
int |
Уникальный ID пользователя |
first_name |
str |
Имя |
last_name |
str \| None |
Фамилия |
username |
str \| None |
Имя пользователя (без @) |
is_bot |
bool |
Является ли ботом |
last_activity_time |
int \| None |
Время последней активности (Unix timestamp) |
name |
str \| None |
Полное имя (deprecated) |
Свойства¶
| Свойство | Тип | Описание |
|---|---|---|
full_name |
str |
"First Last" или "First" если нет фамилии |
mention_html |
str |
<a href="max://user/123">First Last</a> |
mention_md |
str |
[First Last](max://user/123) |
Методы¶
| Метод | Описание |
|---|---|
await get_profile_photo(chat_id, full_size=True) |
Скачать аватарку. Возвращает bytes \| None |
await get_profile_photo_url(chat_id, full_size=True) |
Получить URL аватарки. Возвращает str \| None |
user = message.sender
chat_id = message.recipient.chat_id
user.full_name # "Michael Smith"
user.mention_html # '<a href="max://user/123">Michael Smith</a>'
await message.answer(text=f"Hello, {user.mention_html}!")
# Скачать аватарку (bytes)
photo = await user.get_profile_photo(chat_id=chat_id)
if photo:
with open("avatar.jpg", "wb") as f:
f.write(photo)
# Только URL без скачивания
url = await user.get_profile_photo_url(chat_id=chat_id)
# Миниатюра
thumb = await user.get_profile_photo(chat_id=chat_id, full_size=False)
UserWithPhoto¶
Пользователь с информацией об аватаре.
class UserWithPhoto(User):
avatar_url: str | None = None
full_avatar_url: str | None = None
description: str | None = None
Дополнительные поля¶
| Поле | Тип | Описание |
|---|---|---|
avatar_url |
str \| None |
URL аватара (уменьшенный) |
full_avatar_url |
str \| None |
URL аватара (полный размер) |
description |
str \| None |
Описание/биография |
BotInfo¶
Информация о боте (ответ GET /me).
Наследует все поля UserWithPhoto + User.
ChatMember¶
Участник чата с дополнительной информацией о членстве.
class ChatMember(UserWithPhoto):
last_access_time: int | None = None
is_owner: bool = False
is_admin: bool = False
join_time: int | None = None
permissions: list[ChatAdminPermission] | None = None
alias: str | None = None
Поля¶
| Поле | Тип | Описание |
|---|---|---|
last_access_time |
int \| None |
Последнее посещение |
is_owner |
bool |
Владелец чата |
is_admin |
bool |
Администратор |
join_time |
int \| None |
Время вступления |
permissions |
list[ChatAdminPermission] \| None |
Права администратора (валидируются как enum) |
alias |
str \| None |
Псевдоним в чате |
ChatAdmin¶
Запрос на назначение администратора.
class ChatAdmin(MaxObject):
user_id: int
permissions: list[ChatAdminPermission] | None = None
alias: str | None = None
Неизвестные значения в permissions отклоняются на уровне валидации pydantic —
полный список допустимых значений см. в ChatAdminPermission.
BotCommand¶
Описание команды бота.
Исходные файлы¶
maxgram/types/user.pymaxgram/types/user_with_photo.pymaxgram/types/bot_info.pymaxgram/types/chat_member.pymaxgram/types/chat_admin.pymaxgram/types/bot_command.py