Исходный код maxo.types.user

from datetime import datetime

from maxo.errors import AttributeIsEmptyError
from maxo.omit import Omittable, Omitted, is_defined
from maxo.types.base import MaxoType


[документация] class User(MaxoType): """ Объект, описывающий один из вариантов наследования: - [`User`](https://dev.max.ru/docs-api/objects/User) - объект содержит общую информацию о пользователе или боте без аватара - [`UserWithPhoto`](https://dev.max.ru/docs-api/objects/UserWithPhoto) - объект с общей информацией о пользователе или боте, дополнительно содержит URL аватара и описание - [`BotInfo`](https://dev.max.ru/docs-api/objects/BotInfo) - объект включает общую информацию о боте, URL аватара и описание. Дополнительно содержит список команд, поддерживаемых ботом. Возвращается только при вызове метода [`GET /me`](https://dev.max.ru/docs-api/methods/GET/me) - [`ChatMember`](https://dev.max.ru/docs-api/objects/ChatMember) - объект включает общую информацию о пользователе или боте, URL аватара и описание при его наличии. Дополнительно содержит данные для пользователей-участников чата. Возвращается только при вызове некоторых методов группы `/chats`, например [`GET /chats/{chatId}/members`](https://dev.max.ru/docs-api/methods/GET/chats/-chatId-/members) Args: first_name: Отображаемое имя пользователя или бота is_bot: `true`, если это бот last_activity_time: Время последней активности пользователя или бота в MAX (Unix-время в миллисекундах). Если пользователь отключил в настройках профиля мессенджера MAX возможность видеть, что он в сети онлайн, поле может не возвращаться last_name: Отображаемая фамилия пользователя. Для ботов это поле не возвращается name: _Устаревшее поле, скоро будет удалено_ user_id: Идентификатор пользователя или бота username: Никнейм бота или уникальное публичное имя пользователя. В случае с пользователем может быть `null`, если тот недоступен или имя не задано """ first_name: str """Отображаемое имя пользователя или бота""" is_bot: bool """`true`, если это бот""" last_activity_time: datetime """Время последней активности пользователя или бота в MAX (Unix-время в миллисекундах). Если пользователь отключил в настройках профиля мессенджера MAX возможность видеть, что он в сети онлайн, поле может не возвращаться""" user_id: int """Идентификатор пользователя или бота""" username: str | None = None """Никнейм бота или уникальное публичное имя пользователя. В случае с пользователем может быть `null`, если тот недоступен или имя не задано""" last_name: Omittable[str | None] = Omitted() """Отображаемая фамилия пользователя. Для ботов это поле не возвращается""" name: Omittable[str | None] = Omitted() """_Устаревшее поле, скоро будет удалено_""" @property def id(self) -> int: return self.user_id @property def fullname(self) -> str: if self.first_name and self.last_name: return f"{self.first_name} {self.last_name}" return self.first_name full_name = fullname # Подражание aiogram @property def unsafe_last_name(self) -> str: if is_defined(self.last_name): return self.last_name raise AttributeIsEmptyError( obj=self, attr="last_name", ) @property def unsafe_name(self) -> str: if is_defined(self.name): return self.name raise AttributeIsEmptyError( obj=self, attr="name", ) @property def unsafe_username(self) -> str: if is_defined(self.username): return self.username raise AttributeIsEmptyError( obj=self, attr="username", )