Переделал нахуй всё
This commit is contained in:
28
Middleware/anti_spam_middleware.py
Normal file
28
Middleware/anti_spam_middleware.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from aiogram.dispatcher.middlewares.base import BaseMiddleware
|
||||
from aiogram.types import TelegramObject
|
||||
import time
|
||||
|
||||
|
||||
class AntiSpamMiddleware(BaseMiddleware):
|
||||
def __init__(self, rate_limit=1):
|
||||
super().__init__()
|
||||
self.rate_limit = rate_limit
|
||||
self.users = {}
|
||||
|
||||
async def __call__(self, handler, event: TelegramObject, data: dict):
|
||||
user_id = None
|
||||
|
||||
# Определяем user_id для события
|
||||
if hasattr(event, "from_user") and event.from_user:
|
||||
user_id = event.from_user.id
|
||||
|
||||
if user_id:
|
||||
now = time.time()
|
||||
last_time = self.users.get(user_id)
|
||||
if last_time and now - last_time < self.rate_limit:
|
||||
# Если сообщение отправлено слишком быстро, игнорируем
|
||||
return
|
||||
self.users[user_id] = now
|
||||
|
||||
# Если прошло достаточно времени, продолжаем обработку
|
||||
return await handler(event, data)
|
||||
Reference in New Issue
Block a user