From 4eb1a16d1fab74bafbe566edf25dd76c367689fa Mon Sep 17 00:00:00 2001 From: Verum Date: Wed, 26 Feb 2025 11:20:08 +0700 Subject: [PATCH] =?UTF-8?q?1.3=20=D0=A3=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BE=D0=BC=20=D1=83=D1=87=D0=B0=D1=81=D1=82=D0=BD=D0=B8=D0=BA?= =?UTF-8?q?=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handlers/new_member_notification.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 BotCode/routers/handlers/new_member_notification.py diff --git a/BotCode/routers/handlers/new_member_notification.py b/BotCode/routers/handlers/new_member_notification.py new file mode 100644 index 0000000..cef1f9b --- /dev/null +++ b/BotCode/routers/handlers/new_member_notification.py @@ -0,0 +1,39 @@ +from aiogram import Router, types +from aiogram.filters import ChatMemberUpdatedFilter, JOIN_TRANSITION + +from BotLibrary import Logs +from ProjectsFiles import BotEdit + +# Создание роутера и настройка экспорта в модули +__all__ = ("router",) +router = Router(name="new_member_notification_router") + + +# Роутер по новым участникам чата +@router.chat_member(ChatMemberUpdatedFilter(JOIN_TRANSITION)) +async def new_member_handler(event: types.ChatMemberUpdated): + chat_id = event.chat.id + new_user = event.new_chat_member.user + admins = await event.bot.get_chat_administrators(chat_id) + + # Формируем список упоминаний администраторов + admin_mentions = [] + for admin in admins: + if admin.user.is_bot: + continue + admin_mentions.append( + f"@{admin.user.username}" if admin.user.username else f"{admin.user.full_name}") + + admins_text = ", ".join(admin_mentions) if admin_mentions else "Нет администраторов для упоминания" + + # Привязка пользователя по ссылке + new_user_link = f"{new_user.full_name}" + + # Сообщение с упоминанием администраторов + welcome_text = (f"Приветствуем тебя, {new_user_link}! 👋\n" + f"Мы рады тебя приветствовать в проекте {BotEdit.project_name} " + f"Надеемся, что вы сможете найти здесь друзей и провести весело время с нами!\n" + f"А пока уведомлю участников чата: {admins_text}") + + Logs.debug(log_type="NEW", user=f"@{new_user.username or new_user.id}", text="Новый участник чата!") + await event.bot.send_message(chat_id, welcome_text, parse_mode="HTML")