Edit on GitHub

src.handlers.ban

Блокировка пользователя

 1"""Блокировка пользователя"""
 2
 3from aiogram import F, Router
 4from aiogram.filters.chat_member_updated import (KICKED, MEMBER,
 5                                                 ChatMemberUpdatedFilter)
 6from aiogram.types import ChatMemberUpdated
 7
 8import text
 9from core import exceptions as exc
10from core.err import bot_except
11from db import utils
12
13router = Router()
14router.my_chat_member.filter(F.chat.type == "private")
15
16
17@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=KICKED))
18@bot_except
19async def user_blocked_bot(event: ChatMemberUpdated):
20    """Обрабатывает событие, когда пользователь заблокировал бота.
21
22    Args:
23        event (ChatMemberUpdated): Событие обновления статуса участника чата.
24    """
25    await utils.ban_user(event.from_user.id)
26
27
28@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=MEMBER))
29@bot_except
30async def user_unblocked_bot(event: ChatMemberUpdated):
31    """Обрабатывает событие, когда пользователь разблокировал бота.
32
33    Args:
34        event (ChatMemberUpdated): Событие обновления статуса участника чата.
35    """
36    try:
37        await utils.recover_user(event.from_user.id)
38    except exc.DatabaseError:
39        await event.answer(text=text.DB_ERROR, show_alert=True)
40    else:
41        await event.answer(text="Посылаю запрос на восстановление учетной записи...")
router = <Router '0x7f23dac366f0'>
@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=KICKED))
@bot_except
async def user_blocked_bot(event: aiogram.types.chat_member_updated.ChatMemberUpdated):
18@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=KICKED))
19@bot_except
20async def user_blocked_bot(event: ChatMemberUpdated):
21    """Обрабатывает событие, когда пользователь заблокировал бота.
22
23    Args:
24        event (ChatMemberUpdated): Событие обновления статуса участника чата.
25    """
26    await utils.ban_user(event.from_user.id)

Обрабатывает событие, когда пользователь заблокировал бота.

Arguments:
  • event (ChatMemberUpdated): Событие обновления статуса участника чата.
@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=MEMBER))
@bot_except
async def user_unblocked_bot(event: aiogram.types.chat_member_updated.ChatMemberUpdated):
29@router.my_chat_member(ChatMemberUpdatedFilter(member_status_changed=MEMBER))
30@bot_except
31async def user_unblocked_bot(event: ChatMemberUpdated):
32    """Обрабатывает событие, когда пользователь разблокировал бота.
33
34    Args:
35        event (ChatMemberUpdated): Событие обновления статуса участника чата.
36    """
37    try:
38        await utils.recover_user(event.from_user.id)
39    except exc.DatabaseError:
40        await event.answer(text=text.DB_ERROR, show_alert=True)
41    else:
42        await event.answer(text="Посылаю запрос на восстановление учетной записи...")

Обрабатывает событие, когда пользователь разблокировал бота.

Arguments:
  • event (ChatMemberUpdated): Событие обновления статуса участника чата.