fix refferal system

This commit is contained in:
Vladless
2025-03-07 00:51:02 +03:00
parent 8f1ceb4e66
commit fcdfd3a484
3 changed files with 5 additions and 8 deletions
+3
View File
@@ -672,6 +672,9 @@ async def handle_referral_on_balance_update(tg_id: int, amount: float):
tg_id (int): Идентификатор Telegram пользователя, пополнившего баланс
amount (float): Сумма пополнения баланса
"""
if amount <= 0:
return
conn = None
try:
conn = await asyncpg.connect(DATABASE_URL)
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -7
View File
@@ -4,15 +4,12 @@ from aiogram import BaseMiddleware, Bot
from aiogram.types import TelegramObject, CallbackQuery
from cachetools import TTLCache
# Время троттлинга (в секундах)
THROTTLE_TIME = 3.0
THROTTLE_TIME = 1.0
class ThrottlingMiddleware(BaseMiddleware):
def __init__(self) -> None:
# Общий кэш для всех запросов
self.cache = TTLCache(maxsize=10_000, ttl=THROTTLE_TIME)
# Кэш для уведомлений о троттлинге
self.throttle_notice_cache = TTLCache(maxsize=10_000, ttl=3.0)
async def __call__(
@@ -21,13 +18,10 @@ class ThrottlingMiddleware(BaseMiddleware):
event: TelegramObject,
data: Dict[str, Any],
) -> Any:
# Получаем бота и пользователя
bot: Bot | None = data.get("bot", None)
user_id = event.from_user.id if event.from_user else None
# Проверяем троттлинг
if user_id in self.cache:
# Показываем уведомление, если это CallbackQuery и уведомление не показывалось недавно
if isinstance(event, CallbackQuery) and user_id not in self.throttle_notice_cache:
self.throttle_notice_cache[user_id] = None
await bot.answer_callback_query(