From fc4bb88db88295a5a2c282d5e470f909b1816625 Mon Sep 17 00:00:00 2001 From: Zakhar Izmaylov Date: Sun, 19 Jan 2025 09:15:42 +0300 Subject: [PATCH] Fix and update Middleware --- bot.py | 24 ++---------------------- filters/private.py | 2 +- middlewares/__init__.py | 24 ++++++++++++++++++++++++ middlewares/{logging.py => loggings.py} | 0 middlewares/{database.py => session.py} | 2 +- 5 files changed, 28 insertions(+), 24 deletions(-) create mode 100644 middlewares/__init__.py rename middlewares/{logging.py => loggings.py} (100%) rename middlewares/{database.py => session.py} (93%) diff --git a/bot.py b/bot.py index 2935fad1..9ca8a11f 100644 --- a/bot.py +++ b/bot.py @@ -12,33 +12,13 @@ from aiogram.utils.markdown import hbold from config import ADMIN_ID, API_TOKEN from filters.private import IsPrivate from logger import logger -from middlewares.admin import AdminMiddleware -from middlewares.database import DatabaseMiddleware -from middlewares.delete import DeleteMessageMiddleware -from middlewares.logging import LoggingMiddleware -from middlewares.throttling import ThrottlingMiddleware -from middlewares.user import UserMiddleware +from middlewares import register_middleware bot = Bot(token=API_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML)) storage = MemoryStorage() dp = Dispatcher(bot=bot, storage=storage) -dp.message.middleware(LoggingMiddleware()) -dp.callback_query.middleware(LoggingMiddleware()) - -dp.message.middleware(AdminMiddleware()) -dp.callback_query.middleware(AdminMiddleware()) -dp.message.middleware(UserMiddleware()) -dp.callback_query.middleware(UserMiddleware()) - -dp.message.middleware(DatabaseMiddleware()) -dp.callback_query.middleware(DatabaseMiddleware()) - -dp.message.middleware(ThrottlingMiddleware()) -dp.callback_query.middleware(ThrottlingMiddleware()) - -dp.message.outer_middleware(DeleteMessageMiddleware()) -dp.callback_query.outer_middleware(DeleteMessageMiddleware()) +register_middleware(dp) dp.message.filter(IsPrivate()) dp.callback_query.filter(IsPrivate()) diff --git a/filters/private.py b/filters/private.py index 334da487..6dea490e 100644 --- a/filters/private.py +++ b/filters/private.py @@ -3,6 +3,6 @@ from aiogram.filters import BaseFilter from aiogram.types import Chat, TelegramObject -class IsPrivate(BaseFilter): +class IsPrivateFilter(BaseFilter): async def __call__(self, event: TelegramObject, event_chat: Chat) -> bool: return event_chat.type == ChatType.PRIVATE diff --git a/middlewares/__init__.py b/middlewares/__init__.py new file mode 100644 index 00000000..66397ae5 --- /dev/null +++ b/middlewares/__init__.py @@ -0,0 +1,24 @@ +from typing import Any + +from admin import AdminMiddleware +from aiogram import Dispatcher +from delete import DeleteMessageMiddleware +from loggings import LoggingMiddleware +from session import SessionMiddleware +from throttling import ThrottlingMiddleware +from user import UserMiddleware + + +def register_middleware(dispatcher: Dispatcher) -> None: + middlewares = [ + AdminMiddleware(), + SessionMiddleware(), + DeleteMessageMiddleware(), + LoggingMiddleware(), + ThrottlingMiddleware(), + UserMiddleware(), + ] + + for middleware in middlewares: + dispatcher.message.outer_middleware(middleware) + dispatcher.callback_query.outer_middleware(middleware) diff --git a/middlewares/logging.py b/middlewares/loggings.py similarity index 100% rename from middlewares/logging.py rename to middlewares/loggings.py diff --git a/middlewares/database.py b/middlewares/session.py similarity index 93% rename from middlewares/database.py rename to middlewares/session.py index c9bf6906..a5d34441 100644 --- a/middlewares/database.py +++ b/middlewares/session.py @@ -8,7 +8,7 @@ from aiogram.types import TelegramObject from config import DATABASE_URL -class DatabaseMiddleware(BaseMiddleware): +class SessionMiddleware(BaseMiddleware): async def __call__( self, handler: Callable[[TelegramObject, dict[str, Any]], Awaitable[Any]],