Skip to content
This repository was archived by the owner on Feb 11, 2026. It is now read-only.

Commit 193699e

Browse files
committed
Обновление ссылок на репозиторий и авторов, удаление конфигурации mkdocs, улучшение документации и добавление новых функций в релиз 1.2.4
1 parent 7f272b4 commit 193699e

6 files changed

Lines changed: 226 additions & 35 deletions

File tree

redocs/source/clients.rst

Lines changed: 113 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,44 @@
11
Clients
22
=======
33

4+
Выбор между MaxClient и SocketMaxClient
5+
----------------------------------------
6+
7+
PyMax предоставляет два клиента с разной функциональностью в зависимости от выбранного протокола подключения:
8+
9+
.. list-table:: Сравнение клиентов
10+
:widths: 30 35 35
11+
:header-rows: 1
12+
13+
* - Функция
14+
- MaxClient (WebSocket)
15+
- SocketMaxClient (Socket)
16+
* - Протокол подключения
17+
- WebSocket
18+
- TCP Socket
19+
* - Способ авторизации
20+
- Вход по QR-коду
21+
- Вход/регистрация по номеру телефона
22+
* - Регистрация новых пользователей
23+
- ❌ Не поддерживается
24+
- ✅ Поддерживается
25+
* - Скорость подключения
26+
- Быстрое
27+
- Медленнее
28+
* - Рекомендуемое использование
29+
- Базовые боты и приложения
30+
- Массовая регистрация, системная авторизация
31+
432
MaxClient
533
---------
634

735
Основной асинхронный WebSocket клиент для взаимодействия с Max API.
836

37+
**Поддерживаемые методы авторизации:**
38+
- ✅ Вход по QR-коду (WEB device_type)
39+
- ❌ Вход по номеру телефона (больше не поддерживается)
40+
- ❌ Регистрация по номеру телефона
41+
942
Инициализация:
1043

1144
.. code-block:: python
@@ -20,27 +53,10 @@ MaxClient
2053
logger=None, # Пользовательский логгер
2154
)
2255
23-
.. warning::
24-
25-
Параметр ``device_type`` в ``UserAgentPayload`` **критически важен** для выбора способа авторизации:
26-
27-
**DESKTOP** — вход по номеру телефона:
28-
29-
.. code-block:: python
30-
31-
from pymax.payloads import UserAgentPayload
32-
33-
ua = UserAgentPayload(device_type="DESKTOP", app_version="25.12.13")
34-
client = MaxClient(phone="+79111111111", headers=ua)
35-
36-
**WEB** — вход через QR-код; токен совместим с веб-версией Max:
37-
38-
.. code-block:: python
39-
40-
from pymax.payloads import UserAgentPayload
56+
.. note::
4157

42-
ua = UserAgentPayload(device_type="WEB", app_version="25.12.13")
43-
client = MaxClient(phone="+79111111111", headers=ua)
58+
MaxClient по умолчанию использует **WEB** device_type и поддерживает только вход по QR-коду.
59+
Это является рекомендуемым способом авторизации для большинства приложений.
4460

4561
Основные методы:
4662

@@ -154,9 +170,83 @@ MaxClient
154170
SocketMaxClient
155171
---------------
156172

157-
Низкоуровневый WebSocket клиент для прямого взаимодействия с API.
158-
Обычно не требуется использовать напрямую - используйте MaxClient вместо этого.
173+
Асинхронный TCP Socket клиент для взаимодействия с Max API. Используется для вход и регистрации по номеру телефона.
174+
175+
**Поддерживаемые методы авторизации:**
176+
- ✅ Вход по номеру телефона (DESKTOP, ANDROID, IOS device_types)
177+
- ✅ Регистрация нового пользователя по номеру телефона
178+
179+
**Когда использовать SocketMaxClient:**
180+
- Необходимо зарегистрировать новых пользователей
181+
- Требуется вход по номеру телефона (без QR-кода)
182+
- Необходимо использовать DESKTOP, ANDROID или IOS device_types
183+
- Разрабатываете системы массовой регистрации или авторизации
184+
- Нужна автоматизация входа (вход по номеру телефона удобнее для автоматизации, чем сканирование QR-кода)
185+
186+
.. note::
187+
188+
**SocketMaxClient — это полноценный и рекомендуемый способ авторизации!**
189+
190+
Не воспринимайте Socket клиент как что-то вспомогательное или альтернативное.
191+
Вход по номеру телефона — это основной способ авторизации в Max, и ``SocketMaxClient`` обеспечивает надежный доступ к этому функционалу.
192+
193+
Для многих сценариев (особенно для автоматизации и интеграции) вход по номеру телефона **удобнее и практичнее**, чем сканирование QR-кода.
194+
195+
Инициализация и вход:
196+
197+
.. code-block:: python
198+
199+
from pymax import SocketMaxClient
200+
from pymax.payloads import UserAgentPayload
201+
202+
# Для входа по номеру телефона
203+
client = SocketMaxClient(
204+
phone="+79001234567",
205+
work_dir="./cache",
206+
headers=UserAgentPayload(device_type="DESKTOP"),
207+
)
208+
209+
await client.start() # Потребуется ввести код подтверждения
210+
211+
Регистрация нового пользователя:
212+
213+
.. code-block:: python
214+
215+
from pymax import SocketMaxClient
216+
from pymax.payloads import UserAgentPayload
217+
218+
client = SocketMaxClient(
219+
phone="+79001234567",
220+
registration=True, # Флаг регистрации
221+
first_name="Иван",
222+
last_name="Петров",
223+
headers=UserAgentPayload(device_type="DESKTOP"),
224+
)
225+
226+
await client.start() # Потребуется ввести код подтверждения
227+
228+
.. important::
229+
230+
SocketMaxClient должен использоваться для:
231+
232+
1. **Регистрации новых пользователей** — MaxClient не поддерживает регистрацию
233+
2. **Входа по номеру телефона** — требуется phone verification код
234+
3. **Системной авторизации** — когда QR-код недоступен или неудобен
235+
4. **Автоматизации** — вход по номеру телефона легче автоматизировать
159236

160237
.. note::
161238

162-
Если вам нужны низкоуровневые детали, смотрите исходный код библиотеки.
239+
После успешной авторизации через SocketMaxClient вы можете сохранить токен и использовать его с MaxClient для более быстрого подключения к WebSocket API.
240+
241+
.. code-block:: python
242+
243+
# Первый раз: получаем токен через Socket
244+
socket_client = SocketMaxClient(phone="+79001234567")
245+
await socket_client.start()
246+
token = socket_client.token
247+
248+
# Сохраняем токен
249+
250+
# Следующие разы: используем токен с WebSocket клиентом
251+
ws_client = MaxClient(phone="+79001234567", token=token)
252+
await ws_client.start()

redocs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
project = "PyMax"
77
author = "ink-developer"
88
copyright = "2025, ink-developer"
9-
release = "1.2.3"
9+
release = "1.2.4"
1010

1111
# -- Path setup ---------------------------------------------------------------
1212
sys.path.insert(0, os.path.abspath("../../src"))

redocs/source/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Disclaimer
103103
Star History
104104
------------
105105

106-
.. image:: https://api.star-history.com/svg?repos=ink-developer/PyMax&type=date&legend=top-left
106+
.. image:: https://api.star-history.com/svg?repos=MaxApiTeam/PyMax&type=date&legend=top-left
107107

108108
Авторы
109109
------
@@ -114,5 +114,5 @@ Star History
114114
Контрибьюторы
115115
-------------
116116

117-
.. image:: https://contrib.rocks/image?repo=ink-developer/PyMax
117+
.. image:: https://contrib.rocks/image?repo=MaxApiTeam/PyMax
118118
:alt: Contributors

redocs/source/installation.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ UV — это быстрый пакетный менеджер, написанн
4949

5050
.. code-block:: bash
5151
52-
git clone https://github.com/ink-developer/PyMax.git
52+
git clone https://github.com/MaxApiTeam/PyMax.git
5353
cd PyMax
5454
pip install -e .
5555
5656
Или с использованием uv:
5757

5858
.. code-block:: bash
5959
60-
git clone https://github.com/ink-developer/PyMax.git
60+
git clone https://github.com/MaxApiTeam/PyMax.git
6161
cd PyMax
6262
uv sync
6363

redocs/source/quickstart.rst

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,29 @@ Quick Start
1010
1111
pip install -U maxapi-python
1212
13+
Выбор клиента
14+
--------------
15+
16+
PyMax предоставляет два клиента для подключения к Max API:
17+
18+
**MaxClient (WebSocket)** — рекомендуется для большинства приложений:
19+
- Используется WebSocket протокол
20+
- Вход по QR-коду
21+
- Более быстрое подключение
22+
- Подходит для ботов, помощников и приложений
23+
24+
**SocketMaxClient (TCP Socket)** — для специальных случаев:
25+
- Используется TCP Socket протокол
26+
- Вход по номеру телефона
27+
- Поддерживает регистрацию новых пользователей
28+
- Требуется, если вы регистрируете новых пользователей или нужен вход по phone number
29+
30+
Для получения полной информации смотрите :doc:`clients`.
31+
1332
Первый бот: Echo
1433
----------------
1534

16-
Самый простой бот — повторяет сообщения пользователя:
35+
Самый простой бот — повторяет сообщения пользователя (используя MaxClient):
1736

1837
.. code-block:: python
1938
@@ -40,7 +59,7 @@ Quick Start
4059
4160
python bot.py
4261
43-
При первом запуске вам потребуется ввести код подтверждения из приложения Max.
62+
При первом запуске вам потребуется отсканировать QR-код из приложения Max.
4463

4564
Фильтры сообщений
4665
------------------

redocs/source/release_notes.rst

Lines changed: 87 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,90 @@
1+
Release Notes v1.2.4
2+
====================
3+
4+
Новые функции
5+
-------------
6+
7+
**Поддержка различных типов файлов в классах File и Photo**
8+
Классы ``Photo``, ``File`` и ``Video`` теперь поддерживают работу с байтами, что позволяет загружать файлы из памяти напрямую.
9+
10+
**Автоматическая отправка уведомлений о прочтении сообщений**
11+
Клиент теперь автоматически отправляет сервису уведомления о получении сообщений для улучшения синхронизации.
12+
13+
**Параметр session_name для управления сессией**
14+
Параметр ``session_name`` позволяет указать пользовательское имя файла для сохранения сессии.
15+
16+
**Получение текущей версии веб-приложения**
17+
Новый метод ``get_current_web_version()`` в утилитах для получения текущей версии веб-приложения Max.
18+
19+
**Улучшенная генерация User-Agent**
20+
Теперь используется библиотека ``ua-generator`` для более реалистичной генерации User-Agent строк и параметров устройства.
21+
22+
Новые методы
23+
------------
24+
25+
read_message(chat_id: int, message_id: int) -> ReadState
26+
Отмечает сообщение как прочитанное. Возвращает объект ReadState с информацией о состоянии.
27+
28+
pymax.utils.MixinsUtils.get_current_web_version() -> str | None
29+
Получает текущую версию веб-приложения Max из источника. Возвращает версию в формате "XX.XX.XX" или None.
30+
31+
Измененные методы
32+
-----------------
33+
34+
MaxClient.start()
35+
Улучшена логика работы цикла переподключения с использованием ``asyncio.Event`` для более чистого завершения.
36+
Исправлена обработка состояния при отключении и переподключении.
37+
38+
MaxClient.close()
39+
Упрощена логика закрытия клиента. Теперь использует ``asyncio.Event`` для сигнала остановки.
40+
41+
Новые параметры
42+
---------------
43+
44+
MaxClient.__init__(session_name: str = "session.db")
45+
Позволяет указать пользовательское имя файла базы данных сессии.
46+
47+
Измененные типы
48+
---------------
49+
50+
BaseFile
51+
Теперь поддерживает работу с байтами через параметр ``raw`` во всех подклассах.
52+
53+
Photo
54+
Добавлен параметр ``name`` для явного указания имени файла при работе с байтами.
55+
Улучшена валидация расширений файлов.
56+
57+
File
58+
Добавлена поддержка работы с байтами через параметр ``raw``.
59+
Улучшена обработка имен файлов.
60+
61+
Video
62+
Добавлена поддержка работы с байтами через параметр ``raw``.
63+
Улучшена работа с видеофайлами.
64+
65+
Исправления и улучшения
66+
------------------------
67+
68+
- Добавлена валидация ``device_type`` для MaxClient (поддерживает только WEB) и SocketMaxClient (поддерживает ANDROID, IOS, DESKTOP)
69+
- Улучшена обработка ошибок WebSocket при отключении
70+
- Добавлена опция ``ua-generator`` для более реалистичной генерации параметров устройства
71+
- Обновлена версия приложения до 25.12.14
72+
- Улучшена обработка уведомлений о доставке сообщений
73+
- Исправлены проблемы с завершением async задач при закрытии клиента
74+
75+
Зависимости
76+
-----------
77+
78+
Добавлены новые зависимости:
79+
- ``ua-generator>=2.0.19`` — для генерации реалистичных User-Agent строк и параметров устройства
80+
81+
Версия
82+
------
83+
84+
**1.2.4** - выпущена 30 декабря 2025 г.
85+
86+
---
87+
188
Release Notes v1.2.3
289
====================
390

@@ -54,8 +141,3 @@ AttachType
54141

55142
MaxClient.contacts: list[User]
56143
Список контактов текущего пользователя.
57-
58-
Версия
59-
------
60-
61-
**1.2.3** - выпущена 24 декабря 2025 г.

0 commit comments

Comments
 (0)