Anti flood button

У меня есть сделанный анти спам для телеграмм бота на aiogram! Как реализовать анти спам для кнопок? Код:

from typing import Any, Awaitable, Callable, Dict
from datetime import datetime, timedelta

from aiogram import BaseMiddleware
from aiogram.types import Message
from cachetools import TTLCache


class ThrottlingMiddleware(BaseMiddleware):
    def __init__(self, time_limit: int = 2) -> None:
        self.limit = TTLCache(maxsize=10000, ttl=time_limit)
        self.time_limit = time_limit

    async def __call__(
            self,
            handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]],
            event: Message,
            data: Dict[str, Any],
    ) -> Any:
        current_time = datetime.now()
        if event.chat.id in self.limit:
            expire_time = self.limit[event.chat.id]
            remaining_time = (expire_time - current_time).total_seconds()
            if remaining_time > 0:
                await event.reply(
                    f"Пожалуйста, подождите {remaining_time:.1f} секунд!"
                )
                return

        self.limit[event.chat.id] = current_time + timedelta(seconds=self.time_limit)
        return await handler(event, data)```

Ответы (0 шт):