Releases: MaxApiTeam/PyMax
Releases · MaxApiTeam/PyMax
PyMax 2.1.3
PyMax 2.1.3
Patch-релиз про устойчивость к живым payload-ам Max, корректный lifecycle соединения и более аккуратную интеграцию logging.
Added
- Добавлен
UnknownAttachmentдля вложений с неизвестным_type. Такие вложения больше не ломают парсингMessageи сохраняют дополнительные поля payload-а.
Fixed
Messageбольше не падает на неизвестных типах вложений вродеUNSUPPORTED.AudioAttachmentпринимает payload безdurationиaudioId.VideoAttachmentпринимает payload безduration.ElementAttributes.urlиElement.lengthстали необязательными.Photo(url=...)корректно валидирует URL с query string.- При потере соединения
App.startedсбрасывается, ping-task отменяется, pending API-запросы очищаются безFuture exception was never retrieved. - Reconnect/close после штатного сетевого обрыва меньше шумит exception-логами.
Changed
configure_logging()теперь уважает logging host-приложения и не очищает чужие handlers.- Если logging не настроен, PyMax по-прежнему включает pretty-логи из коробки.
- Для принудительного pretty-logging добавлен
configure_logging(..., force=True). - TCP msgpack decoder стал проще и подробнее логирует payload при ошибках декодирования.
Migration notes
- Обычный код на
ClientиWebClientменять не нужно. - Если код рассчитывал на то, что
configure_logging()всегда заменяет handler-ыpymax, передайтеforce=True. - Если код ловил
ValidationErrorна неизвестных вложениях, теперь вместо ошибки придетUnknownAttachment.
PyMax 2.1.2
PyMax 2.1.2
Патч-релиз про стабильность login, корректные timeout-ы API-запросов, совместимость FolderList с Pydantic и обновленный publish workflow.
Added
get_bot_init_data()теперь можно вызывать безchat_id, если web app запускается вне конкретного чата.
Fixed
ExtraConfig.request_timeoutснова применяется к API-запросам по умолчанию.- Явный
timeoutв низкоуровневомinvoke()больше не перетирается конфигом. - Login-ответ без нового
tokenбольше не ломает запуск клиента. - Сохраненный токен больше не перезаписывается пустым значением.
FolderListбольше не ломаетdict(...)и стандартную сериализацию Pydantic-модели.
Changed
- Publish workflow упрощен: сборка, проверка дистрибутивов и публикация в PyPI разделены на понятные шаги.
- Версия пакета обновлена до
2.1.2. - Добавлены release notes для
2.1.2.
Migration notes
- Если код итерировал
FolderListнапрямую, замените это наfolder_list.folders. - Обычный код на
ClientиWebClientменять не нужно.
PyMax 2.1.1
PyMax 2.1.1
Патч-релиз про загрузку фото профиля, обновление токенов сессии и стабильность TCP-подключения через proxy.
Added
- Прямая загрузка фотографии профиля через
change_profile(photo=...). upload_photo()теперь умеет запрашивать upload URL для profile photo через флагprofile.
Fixed
- Исправлен TLS-handshake при TCP-подключении через proxy: теперь передается
server_hostname. - После
close_all_sessions()локальный токен сессии обновляется не только в хранилище, но и в памяти клиента. - Обновление токена после login сохраняется в session store.
change_profile(photo=...)теперь передает токен загруженной фотографии в payload профиля.
Changed
- Обновлена документация по фотографии профиля.
- Добавлены release notes для
2.1.1. - Версия пакета обновлена до
2.1.1.
Migration notes
- Обычный код на
ClientиWebClientменять не нужно. - Если раньше использовали ручной
photo_token, он продолжает работать. - Для прямой загрузки фото теперь можно передавать
Photo:
PyMax 2.1.0
PyMax 2.1.0
Релиз про новые API-методы, стабильность TCP-клиента и нормальную release-гигиену.
Added
- Join requests для групп и каналов:
get_join_requests()confirm_join_request()confirm_join_requests()decline_join_request()decline_join_requests()
- 2FA:
check_2fa()change_password()
- QR login approval:
authorize_qr_login(qr_link)
- Web app bot init data:
get_bot_init_data(bot_id, chat_id, start_param=None)
- Доменные типы
Member,Presence,InitData.
Fixed
- Исправлен TCP header layout:
ver:1,cmd:1,seq:2,opcode:2,len/cof:4. - TCP
seqбольше не падает после255; диапазон теперь0..65535. - Upload фото, видео и файлов теперь использует
ExtraConfig.proxyдля HTTP upload-запросов. MaxApiError.titleиMaxApiError.localized_messageтеперь могут отсутствовать в payload.
Changed
Capabilityразделен наProfileOptionsиTwoFactorAction.- Добавлен
BotsService. - Black, Flake8 и isort заменены на Ruff.
- Добавлены pre-commit hooks и release checks перед публикацией.
Migration notes
- Обычный код на
ClientиWebClientменять не нужно. - Если импортировали
pymax.api.auth.enums.Capability, замените его на:TwoFactorActionдля 2FA-действий;ProfileOptionsдля признаков профиля.
- Если код ожидал, что
MaxApiError.titleвсегда строка, теперь нужно учитыватьNone.
PyMax 2.0.1
Фикс критичного бага
Исправлено:
- Исправлен маппинг ивентов из за которого они не проходили
PyMax 2.0.0
PyMax 2.0.0 — полный переписанный релиз.
Обратной совместимости с 1.x нет.
Старая версия:
- PyPI:
maxapi-python==1.2.5 - Ветка:
v1 - Тег:
v1.2.5
Основные изменения:
- Полностью переработанная архитектура
- Новая система роутинга
- Гибкая система авторизации
- Кастомные хранилища сессий
- Доменные типы с активными методами
- Улучшенная документация
- TCP
Clientи WebSocketWebClient