from typing import Dict, Any from aiogram import BaseMiddleware, types from helper_bot.utils.base_dependency_factory import BaseDependencyFactory from logs.custom_logger import logger bdf = BaseDependencyFactory() BotDB = bdf.get_db() class BlacklistMiddleware(BaseMiddleware): async def __call__(self, handler, event: types.Message, data: Dict[str, Any]) -> Any: logger.info(f'Вызов BlacklistMiddleware для пользователя {event.from_user.username}') if BotDB.check_user_in_blacklist(user_id=event.from_user.id): logger.info(f'BlacklistMiddleware результат для пользователя: {event.from_user.username} заблокирован!') user_info = BotDB.get_blacklist_users_by_id(event.from_user.id) await event.answer( f"Ты заблокирован.\nПричина блокировки: {user_info[2]}\nДата разбана: {user_info[3]}") return False logger.info(f'BlacklistMiddleware результат для пользователя: {event.from_user.username} доступ разрешен') return await handler(event, data)