src.handlers.group
Действия в чате
1"""Действия в чате""" 2 3from aiogram import Bot, F, Router 4from aiogram.filters.chat_member_updated import (ADMINISTRATOR, IS_NOT_MEMBER, 5 MEMBER, 6 ChatMemberUpdatedFilter) 7from aiogram.types import ChatMemberUpdated, Message 8 9from core.config import settings 10from core.err import bot_except 11 12router = Router() 13router.my_chat_member.filter(F.chat.type.in_({"group", "supergroup"})) 14router.message.filter(F.chat.type != "private") 15chats_variants = {"group": "группу", "supergroup": "супергруппу"} 16 17 18@router.my_chat_member( 19 ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> ADMINISTRATOR) 20) 21@bot_except 22async def bot_added_as_admin(event: ChatMemberUpdated): 23 """Обработчик события, когда бот добавлен в чат как администратор. 24 25 Args: 26 event (ChatMemberUpdated): Событие, содержащее информацию о изменении статуса участника. 27 """ 28 await event.answer( 29 text=f"Привет! Спасибо, что добавили меня в " 30 f'{chats_variants[event.chat.type]} "{event.chat.title}" ' 31 f"как администратора. ID чата: {event.chat.id}" 32 ) 33 34 35@router.my_chat_member( 36 ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> MEMBER) 37) 38@bot_except 39async def bot_added_as_member(event: ChatMemberUpdated, bot: Bot): 40 """Обработчик события, когда бот добавлен в чат как участник. 41 42 Args: 43 event (ChatMemberUpdated): Событие, содержащее информацию о изменении статуса участника. 44 bot (Bot): Экземпляр бота для выполнения действий. 45 """ 46 chat_info = await bot.get_chat(event.chat.id) 47 if chat_info.permissions.can_send_messages: 48 await event.answer( 49 text=f"Привет! Спасибо, что добавили меня в " 50 f'{chats_variants[event.chat.type]} "{event.chat.title}" ' 51 f"как обычного участника. ID чата: {event.chat.id}" 52 ) 53 54 55@router.chat_member( 56 ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> MEMBER) 57) 58@bot_except 59async def new_members_hi(event: ChatMemberUpdated): 60 """Обработчик события, когда новый участник присоединяется к чату. 61 62 Args: 63 event (ChatMemberUpdated): Событие, содержащее информацию о новом участнике. 64 """ 65 await event.answer( 66 f"Добро пожаловать в чат нашего VPN сервиса, {event.new_chat_member.user.first_name}. 🫡\n\n" 67 "Здесь вы можете задавать интересующие вас вопросы, " 68 "общаться с другими клиентами и авторами сервиса, " 69 "а также следить за актуальными новостями и обновлениями сервиса", 70 ) 71 72 73@router.message(F.text) 74@bot_except 75async def leave_group(message: Message): 76 """Обработчик текстовых сообщений, который выводит бота из группы. 77 78 Args: 79 message (Message): Сообщение, содержащее текст. 80 """ 81 if message.chat.id != settings.BOT_CHAT: 82 await message.chat.leave()
router =
<Router '0x7f23dac55310'>
chats_variants =
{'group': 'группу', 'supergroup': 'супергруппу'}
@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> ADMINISTRATOR))
@bot_except
async def
bot_added_as_admin(event: aiogram.types.chat_member_updated.ChatMemberUpdated):
19@router.my_chat_member( 20 ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> ADMINISTRATOR) 21) 22@bot_except 23async def bot_added_as_admin(event: ChatMemberUpdated): 24 """Обработчик события, когда бот добавлен в чат как администратор. 25 26 Args: 27 event (ChatMemberUpdated): Событие, содержащее информацию о изменении статуса участника. 28 """ 29 await event.answer( 30 text=f"Привет! Спасибо, что добавили меня в " 31 f'{chats_variants[event.chat.type]} "{event.chat.title}" ' 32 f"как администратора. ID чата: {event.chat.id}" 33 )
Обработчик события, когда бот добавлен в чат как администратор.
Arguments:
- event (ChatMemberUpdated): Событие, содержащее информацию о изменении статуса участника.
@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> MEMBER))
@bot_except
async def
bot_added_as_member( event: aiogram.types.chat_member_updated.ChatMemberUpdated, bot: aiogram.client.bot.Bot):
36@router.my_chat_member( 37 ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> MEMBER) 38) 39@bot_except 40async def bot_added_as_member(event: ChatMemberUpdated, bot: Bot): 41 """Обработчик события, когда бот добавлен в чат как участник. 42 43 Args: 44 event (ChatMemberUpdated): Событие, содержащее информацию о изменении статуса участника. 45 bot (Bot): Экземпляр бота для выполнения действий. 46 """ 47 chat_info = await bot.get_chat(event.chat.id) 48 if chat_info.permissions.can_send_messages: 49 await event.answer( 50 text=f"Привет! Спасибо, что добавили меня в " 51 f'{chats_variants[event.chat.type]} "{event.chat.title}" ' 52 f"как обычного участника. ID чата: {event.chat.id}" 53 )
Обработчик события, когда бот добавлен в чат как участник.
Arguments:
- event (ChatMemberUpdated): Событие, содержащее информацию о изменении статуса участника.
- bot (Bot): Экземпляр бота для выполнения действий.
@router.chat_member(ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> MEMBER))
@bot_except
async def
new_members_hi(event: aiogram.types.chat_member_updated.ChatMemberUpdated):
56@router.chat_member( 57 ChatMemberUpdatedFilter(member_status_changed=IS_NOT_MEMBER >> MEMBER) 58) 59@bot_except 60async def new_members_hi(event: ChatMemberUpdated): 61 """Обработчик события, когда новый участник присоединяется к чату. 62 63 Args: 64 event (ChatMemberUpdated): Событие, содержащее информацию о новом участнике. 65 """ 66 await event.answer( 67 f"Добро пожаловать в чат нашего VPN сервиса, {event.new_chat_member.user.first_name}. 🫡\n\n" 68 "Здесь вы можете задавать интересующие вас вопросы, " 69 "общаться с другими клиентами и авторами сервиса, " 70 "а также следить за актуальными новостями и обновлениями сервиса", 71 )
Обработчик события, когда новый участник присоединяется к чату.
Arguments:
- event (ChatMemberUpdated): Событие, содержащее информацию о новом участнике.
@bot_except
async def
leave_group(message: aiogram.types.message.Message):
74@router.message(F.text) 75@bot_except 76async def leave_group(message: Message): 77 """Обработчик текстовых сообщений, который выводит бота из группы. 78 79 Args: 80 message (Message): Сообщение, содержащее текст. 81 """ 82 if message.chat.id != settings.BOT_CHAT: 83 await message.chat.leave()
Обработчик текстовых сообщений, который выводит бота из группы.
Arguments:
- message (Message): Сообщение, содержащее текст.