типо да
This commit is contained in:
48
bot/middlewares/__init__.py
Normal file
48
bot/middlewares/__init__.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from aiogram import Dispatcher, Bot
|
||||
|
||||
from configs import ImportantID
|
||||
from .logging_mdw import LoggingMiddleware
|
||||
from .msg_mdw import MessageCounterMiddleware
|
||||
from .spam_mdw import RateLimitMiddleware
|
||||
from .subscription_mdw import SubscriptionMiddleware
|
||||
from .error_mdw import ErrorHandlingMiddleware
|
||||
from .time_mdw import TimingMiddleware
|
||||
|
||||
# Настройки экспорта
|
||||
__all__ = (
|
||||
"LoggingMiddleware",
|
||||
"SubscriptionMiddleware",
|
||||
"RateLimitMiddleware",
|
||||
"ErrorHandlingMiddleware",
|
||||
"TimingMiddleware",
|
||||
"MessageCounterMiddleware",
|
||||
"setup_middlewares",)
|
||||
|
||||
|
||||
def setup_middlewares(dp: Dispatcher, bot: Bot, channel_ids: list[int | str] = None) -> None:
|
||||
"""
|
||||
Регистрирует все middleware в диспетчере.
|
||||
"""
|
||||
channel_ids: list = channel_ids or []
|
||||
|
||||
# Middleware для ВСЕХ событий (update level)
|
||||
middlewares_updates: list = [
|
||||
TimingMiddleware(), # Замер времени
|
||||
LoggingMiddleware(), # Логирование
|
||||
ErrorHandlingMiddleware(admin_ids=ImportantID.ADMIN_ID), # Обработка ошибок
|
||||
]
|
||||
|
||||
# Middleware только для СООБЩЕНИЙ (message level)
|
||||
middlewares_msg: list = [
|
||||
#RateLimitMiddleware(rate_limit=3, time_period=5.0), # Антифлуд
|
||||
#SubscriptionMiddleware(bot=bot, channel_ids=channel_ids), # Проверка подписки
|
||||
MessageCounterMiddleware(), # Подсчет сообщений
|
||||
]
|
||||
|
||||
# Регистрируем middleware для всех событий
|
||||
for middleware in middlewares_updates:
|
||||
dp.update.middleware(middleware)
|
||||
|
||||
# Регистрируем middleware только для сообщений
|
||||
for middleware in middlewares_msg:
|
||||
dp.message.middleware(middleware)
|
||||
Reference in New Issue
Block a user