Переделал нахуй всё

This commit is contained in:
2024-12-01 11:31:39 +03:00
parent 78a1dd3d62
commit c379759418
16 changed files with 702 additions and 272 deletions

View 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)