Releases: MaxApiTeam/PyMax
Releases · MaxApiTeam/PyMax
PyMax 2.2.0
Релиз расширяет API сообщений и событий, добавляет SMS-регистрацию и делает обработку живых payload-ов Max устойчивее.
Added
- Получение сообщений через
get_message()иget_messages(). - Редактирование сообщений через
edit_message()иMessage.edit(). - События
TypingEvent,PresenceEvent,MessageReadEventиReactionUpdateEvent. - Вступление в каналы через
join_channel(). - Автоматическая SMS-регистрация через
RegistrationConfig. - Поддержка Python 3.14.
Fixed
- Корректные UTF-16 позиции Markdown для emoji и других non-BMP символов.
- Обработка удаления сообщений из WebClient.
- Поддержка разных форматов
MessageDeleteEventи отсутствующегоttl. - Обработка частичных presence-обновлений без
status. - Сохранение типа
message_idпри вызовеread_message(). - Привязка вложенных
Message,ChatиUserк соответствующим сервисам.
Changed
MessageDeleteEventвсегда содержитchat_id, аchatиmessageмогут отсутствовать.- Проверка Pyright ограничена исходным кодом библиотеки.
- Документация типов разделена на отдельные API-страницы.
Migration notes
- В обработчиках удаления используйте
event.chat_idвместоevent.chat.id. - Передавайте идентификаторы в
read_message()без ручного преобразования типов. - Для регистрации нового номера передавайте
RegistrationConfig.
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