API Reference¶
MaxClient¶
pymax.MaxClient(phone: str, uri: str = Constants.WEBSOCKET_URI.value, work_dir: str = '.', logger: logging.Logger | None = None)
¶
Основной клиент для работы с WebSocket API сервиса Max.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
phone
|
str
|
Номер телефона для авторизации. |
required |
uri
|
str
|
URI WebSocket сервера. По умолчанию Constants.WEBSOCKET_URI.value. |
WEBSOCKET_URI.value
|
work_dir
|
str
|
Рабочая директория для хранения базы данных. По умолчанию ".". |
'.'
|
logger
|
Logger | None
|
Пользовательский логгер. Если не передан — используется логгер модуля с именем f"{name}.MaxClient". |
None
|
Raises:
Type | Description |
---|---|
InvalidPhoneError
|
Если формат номера телефона неверный. |
Source code in src\pymax\core.py
Functions¶
on_message(handler: Callable[[Message], Any | Awaitable[Any]]) -> Callable[[Message], Any | Awaitable[Any]]
¶
Устанавливает обработчик входящих сообщений.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
handler
|
Callable[[Message], Any | Awaitable[Any]]
|
Функция или coroutine, принимающая объект Message. |
required |
Returns:
Type | Description |
---|---|
Callable[[Message], Any | Awaitable[Any]]
|
Установленный обработчик. |
Source code in src\pymax\core.py
on_start(handler: Callable[[], Any | Awaitable[Any]]) -> Callable[[], Any | Awaitable[Any]]
¶
Устанавливает обработчик, вызываемый при старте клиента.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
handler
|
Callable[[], Any | Awaitable[Any]]
|
Функция или coroutine без аргументов. |
required |
Returns:
Type | Description |
---|---|
Callable[[], Any | Awaitable[Any]]
|
Установленный обработчик. |
Source code in src\pymax\core.py
send_message(text: str, chat_id: int, notify: bool) -> Message | None
async
¶
Отправляет сообщение в чат.
Source code in src\pymax\core.py
edit_message(chat_id: int, message_id: int, text: str) -> Message | None
async
¶
Редактирует сообщение.
Source code in src\pymax\core.py
delete_message(chat_id: int, message_ids: list[int], for_me: bool) -> bool
async
¶
Удаляет сообщения.
Source code in src\pymax\core.py
get_cached_user(user_id: int) -> User | None
¶
Получает юзера из кеша по его ID
Parameters:
Name | Type | Description | Default |
---|---|---|---|
user_id
|
int
|
ID пользователя. |
required |
Returns:
Type | Description |
---|---|
User | None
|
User | None: Объект User или None при ошибке. |
Source code in src\pymax\core.py
get_users(user_ids: list[int]) -> list[User]
async
¶
Получает информацию о пользователях по их ID (с кешем).
Source code in src\pymax\core.py
get_user(user_id: int) -> User | None
async
¶
Получает информацию о пользователе по его ID (с кешем).
Source code in src\pymax\core.py
fetch_users(user_ids: list[int]) -> None | list[User]
async
¶
Получает информацию о пользователях по их ID.
Source code in src\pymax\core.py
fetch_history(chat_id: int, from_time: int | None = None, forward: int = 0, backward: int = 200) -> list[Message] | None
async
¶
Получает историю сообщений чата.
Source code in src\pymax\core.py
start() -> None
async
¶
Запускает клиент, подключается к WebSocket, авторизует пользователя (если нужно) и запускает фоновый цикл.
Source code in src\pymax\core.py
Типы данных¶
Message¶
pymax.Message(sender: int | None, elements: list[Element] | None, reaction_info: dict[str, Any] | None, options: int | None, id: int, time: int, text: str, status: MessageStatus | str | None, type: MessageType | str, attaches: list[Any])
¶
Source code in src\pymax\types.py
User¶
pymax.User(account_status: int, update_time: int, id: int, names: list[Names], options: list[str] | None = None, base_url: str | None = None, base_raw_url: str | None = None, photo_id: int | None = None, description: str | None = None, gender: int | None = None, link: str | None = None, web_app: str | None = None, menu_button: dict[str, Any] | None = None)
¶
Source code in src\pymax\types.py
Chat¶
pymax.Chat(participants_count: int, access: AccessType | str, invited_by: int | None, link: str | None, chat_type: ChatType | str, title: str | None, last_fire_delayed_error_time: int, last_delayed_update_time: int, options: dict[str, bool], base_raw_icon_url: str | None, base_icon_url: str | None, description: str | None, modified: int, id_: int, admin_participants: dict[int, dict[Any, Any]], participants: dict[int, int], owner: int, join_time: int, created: int, last_message: Message | None, prev_message_id: str | None, last_event_time: int, messages_count: int, admins: list[int], restrictions: int | None, status: str, cid: int)
¶
Source code in src\pymax\types.py
Dialog¶
pymax.Dialog(cid: int | None, owner: int, has_bots: bool | None, join_time: int, created: int, last_message: Message | None, type: ChatType | str, last_fire_delayed_error_time: int, last_delayed_update_time: int, prev_message_id: str | None, options: dict[str, bool], modified: int, last_event_time: int, id: int, status: str, participants: dict[str, int])
¶
Source code in src\pymax\types.py
Channel¶
pymax.Channel(participants_count: int, access: AccessType | str, invited_by: int | None, link: str | None, chat_type: ChatType | str, title: str | None, last_fire_delayed_error_time: int, last_delayed_update_time: int, options: dict[str, bool], base_raw_icon_url: str | None, base_icon_url: str | None, description: str | None, modified: int, id_: int, admin_participants: dict[int, dict[Any, Any]], participants: dict[int, int], owner: int, join_time: int, created: int, last_message: Message | None, prev_message_id: str | None, last_event_time: int, messages_count: int, admins: list[int], restrictions: int | None, status: str, cid: int)
¶
Bases: Chat
Source code in src\pymax\types.py
Element¶
pymax.Element(type: ElementType | str, length: int, from_: int | None = None)
¶
Исключения¶
InvalidPhoneError¶
pymax.InvalidPhoneError(phone: str)
¶
Bases: Exception
Исключение, вызываемое при неверном формате номера телефона.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
phone
|
str
|
Некорректный номер телефона. |
required |
Source code in src\pymax\exceptions.py
WebSocketNotConnectedError¶
pymax.WebSocketNotConnectedError()
¶
Константы¶
MessageType¶
pymax.MessageType
¶
Bases: str
, Enum
MessageStatus¶
pymax.MessageStatus
¶
Bases: str
, Enum
ChatType¶
pymax.ChatType
¶
Bases: str
, Enum
AuthType¶
pymax.AuthType
¶
Bases: str
, Enum
AccessType¶
pymax.AccessType
¶
Bases: str
, Enum
DeviceType¶
pymax.DeviceType
¶
Bases: str
, Enum
ElementType¶
pymax.ElementType
¶
Bases: str
, Enum
Opcode¶
pymax.Opcode
¶
Bases: IntEnum