AIOgram3 15. Обработка события вступления или покидания чата
В этом посте расскажу как обрабатывать события вступления или покидания пользователем чата.
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 164296
Реклама
Последняя (на данный момент) задача - это приветствие нового участника чата и оповещение о том, что кто-то нас покинул.
Решение достаточно простое и пост будет коротким.
Обработка событий.
Откроем файл 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))
Готово! Теперь если новый пользователь зайдёт в чат, его поприветствует бот, а если кто-то его покинет, бот уведомит и об этом.
Все статьи