diff --git a/BotCode/routers/handlers/__init__.py b/BotCode/routers/handlers/__init__.py index ff3175f..afd60a0 100644 --- a/BotCode/routers/handlers/__init__.py +++ b/BotCode/routers/handlers/__init__.py @@ -3,10 +3,14 @@ from aiogram import Router from .new_member_notification import router as member_notification_router +from .leave_member import router as leave_member_router # Объявление роутера и настройка экспорта модулей __all__ = ("router",) router = Router(name="handlers_head_router") # Идет самым последним, если другие роутеры не сработали -router.include_router(member_notification_router) +router.include_routers( + member_notification_router, + leave_member_router, +) diff --git a/BotCode/routers/handlers/leave_member.py b/BotCode/routers/handlers/leave_member.py new file mode 100644 index 0000000..6456b5d --- /dev/null +++ b/BotCode/routers/handlers/leave_member.py @@ -0,0 +1,28 @@ +# BotCode/routers/handlers/leave_member_notification.py +# Вывод уведомления о покидании участника + +from aiogram import Router, types +from aiogram.filters import ChatMemberUpdatedFilter, LEAVE_TRANSITION +from BotLibrary import Logs + +# Создание роутера и настройка экспорта в модули +__all__ = ("router",) +router = Router(name="leave_member_notification_router") + + +# Роутер по покиданию участников чата +@router.chat_member(ChatMemberUpdatedFilter(LEAVE_TRANSITION)) +async def leave_member_handler(event: types.ChatMemberUpdated): + chat_id = event.chat.id + leaving_user = event.old_chat_member.user + + # Привязка пользователя по ссылке + leaving_user_link = f"{leaving_user.full_name}" + + # Сообщение с упоминанием администраторов + farewell_text = (f"Пользователь {leaving_user_link} покинул чат. " + f"Мы будем скучать по тебе! 😔\n" + f"Надеемся, ты вернёшься, когда захочешь снова пообщаться с нами!") + + Logs.debug(log_type="LEAVE", user=f"@{leaving_user.username or leaving_user.id}", text="Участник покинул чат!") + await event.bot.send_message(chat_id, farewell_text, parse_mode="HTML")