Skip to content

Latest commit

 

History

History
98 lines (71 loc) · 4.44 KB

File metadata and controls

98 lines (71 loc) · 4.44 KB

FAQ

Почему я не вижу чаты?

client.chats содержит чаты из login/sync, а не полный список аккаунта. На повторном запуске Max может вернуть только изменения по сохраненному chats_sync. Используйте fetch_chats(), get_chat(chat_id) или ExtraConfig(sync=SyncOverrides(chats_sync=-1)) для следующего login.

Почему сообщения не приходят?

Проверьте, что await client.start() действительно запущен, handler зарегистрирован до запуска клиента, аккаунт видит нужный чат, а соединение не упало. Для диагностики включите log_level="DEBUG" и временно добавьте on_raw.

Почему handler не вызывается?

Самые частые причины:

  • декоратор написан без скобок: @client.on_message вместо @client.on_message();
  • handler принимает один аргумент вместо (event, client);
  • фильтр вернул False или упал с ошибкой;
  • событие другого типа;
  • payload не прошел Pydantic-валидацию.

Чем отличаются роутеры?

Настоящий класс один: Router. ClientRouter и WebRouter - это type alias-ы Router[Client] и Router[WebClient] для подсказок типов. Root router находится внутри клиента, подключаемые router-ы добавляются через include_router(), вложенные - через router.include_router(child).

Зачем handler получает client?

Чтобы обработчик мог вызывать API: отправить сообщение, загрузить историю, получить пользователя или чат. Это также позволяет переиспользовать один router с разными клиентами.

Почему поле в Message равно None?

Max не всегда присылает полный объект сообщения. В событиях могут отсутствовать chat_id, sender, status, reaction_info или вложения. Проверяйте поле перед использованием.

Почему после удаления cache снова нужна авторизация?

В work_dir/session_name лежит SQLite-файл с token, device_id и sync-state. Если удалить файл сессии, PyMax создает новую сессию и снова запускает авторизацию.

Как включить debug-логи?

from pymax import Client, ExtraConfig

client = Client(
    phone="+79990000000",
    extra_config=ExtraConfig(log_level="DEBUG"),
)

Как отключить reconnect?

from pymax import Client, ExtraConfig

client = Client(
    phone="+79990000000",
    extra_config=ExtraConfig(reconnect=False),
)

Что делать, если upload файла падает?

Проверьте, что файл читается, размер больше нуля, передан ровно один источник path/url/raw, а для raw указано name. Для Photo важны расширение и content-type. Для File и Video после HTTP-upload должно прийти событие готовности; иначе PyMax вернет timeout.

Что делать при Pydantic validation error?

Max мог прислать новый или неполный формат payload. Включите DEBUG, снимите raw payload через on_raw и обновите PyMax. Если ошибка повторяется, заведите issue с очищенным payload без token, телефонов и приватных URL.