Змина статуса пользователя в чати

Использование

Керуйте подиями, которые залишають користувачив или приеднуються

from litegram.filters import IS_MEMBER, IS_NOT_MEMBER

@router.chat_member(ChatMemberUpdatedFilter(IS_MEMBER >> IS_NOT_MEMBER))
async def on_user_leave(event: ChatMemberUpdated): ...

@router.chat_member(ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER))
async def on_user_join(event: ChatMemberUpdated): ...

Або створить собственные умови, используя попередньо визначений набор статусив и переходив.

Explanation

class litegram.filters.chat_member_updated.ChatMemberUpdatedFilter(member_status_changed: _MemberStatusMarker | _MemberStatusGroupMarker | _MemberStatusTransition)[исходный код]
member_status_changed

Вы можете импортувати с litegram.filters уси доступни варианта statuses, status group или transitions:

Ситуси

имя

Описаниеание

CREATOR

Власник чату

ADMINISTRATOR

Администратор чату

MEMBER

Учасник чату

RESTRICTED

Обмежений пользователь (может быть не учасником)

LEFT

Не является учасником чату

KICKED

Вигнанийадминистраторами учасник

Статуси можно расширить маркером is_member, добавив префикс + (для is_member == True) или - (для is_member == False) , например +RESTRICTED или -RESTRICTED

Групи статусив

Окреми статуси можно комбинувати с помощью побитового оператора or, например CREATOR | ADMINISTRATOR

имя

Описаниеание

IS_MEMBER

Комбинация статусив (CREATOR | ADMINISTRATOR | MEMBER | +RESTRICTED).

IS_ADMIN

Комбинация статусив (CREATOR | ADMINISTRATOR).

IS_NOT_MEMBER

Комбинация статусив (LEFT | KICKED | -RESTRICTED) .

Переходи

Переходи можно определить с помощью операторов поразрядного сдвига >> и <<. Старий статус учасника чату имеет быть визначений ливоруч для оператора >> (праворуч для <<), а новий статус имеет быть вказаний праворуч для >> оператор (ливоруч для <<)

Напрямок переходу можно изменить с помощью оператора побитовои инверсии: ~JOIN_TRANSITION призведе к обмину старих и нових статусив.

имя

Описаниеание

JOIN_TRANSITION

Означае, что статус зминено с IS_NOT_MEMBER на IS_MEMBER (IS_NOT_MEMBER >> IS_MEMBER)

LEAVE_TRANSITION

Означае, что статус зминено с IS_MEMBER на IS_NOT_MEMBER (~JOIN_TRANSITION)

PROMOTED_TRANSITION

Означае, что статус зминено с (MEMBER | RESTRICTED | LEFT | KICKED) >> ADMINISTRATOR ((MEMBER | RESTRICTED | LEFT | KICKED) >> ADMINISTRATOR)

Примечание

Заметьте, что если вы визначаете об’еднання статусив (через |), вам нужно будет добавить дужки для оператора перед використанням оператора зсуву через приоритети оператора.

Дозволени обработчики

Дозволени типы обновлений для этого фильтра:

  • my_chat_member

  • chat_member