Cat

AIOgram3 15. Обработка события вступления или покидания чата

В этом посте расскажу как обрабатывать события вступления или покидания пользователем чата.

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Telegram-бот на AIOgram3 proDream 07 Октябрь 2023 Просмотров: 3216

Последняя (на данный момент) задача - это приветствие нового участника чата и оповещение о том, что кто-то нас покинул.

Решение достаточно простое и пост будет коротким.

 

Обработка событий.

Откроем файл events.py в пакете handlers и создадим две асинхронные функции: on_user_join и on_user_left.
Обе функции принимают event - объект класса ChatMemberUpdated.

В теле функции напишем отправку сообщения в ответ на событие.

Код функций:

from aiogram.types import ChatMemberUpdated


async def on_user_join(event: ChatMemberUpdated):
    await event.answer(views.join_message(event.new_chat_member.user.first_name))


async def on_user_left(event: ChatMemberUpdated):
    await event.answer(views.left_message(event.old_chat_member.user.first_name))

 

Не забудьте написать функции, возвращающие текст сообщения в файле views.py.

 

Регистрация обработчиков.

Переходим в файл main.py и добавляем следующие строки:

from aiogram.filters import ChatMemberUpdatedFilter, IS_NOT_MEMBER, IS_MEMBER


dp.chat_member.register(on_user_join, ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER))  
dp.chat_member.register(on_user_left, ChatMemberUpdatedFilter(IS_MEMBER >> IS_NOT_MEMBER))

 

Готово! Теперь если новый пользователь зайдёт в чат, его поприветствует бот, а если кто-то его покинет, бот уведомит и об этом.

 

Автор

    Нет комментариев

    Реклама