Fix and update Middleware

This commit is contained in:
Zakhar Izmaylov
2025-01-19 09:15:42 +03:00
parent e17cde7c72
commit fc4bb88db8
5 changed files with 28 additions and 24 deletions
+2 -22
View File
@@ -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())
+1 -1
View File
@@ -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
+24
View File
@@ -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)
@@ -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]],