This commit is contained in:
2026-03-16 17:53:59 +01:00
parent 65b719334f
commit 5e7a6808ab
11 changed files with 807 additions and 60 deletions

View File

@@ -1,10 +1,12 @@
import logging
import asyncio
from datetime import datetime, timedelta
from sqlalchemy.orm import Session
from card import _get_cards_async
from models import Card as CardModel
from models import User as UserModel
from database import SessionLocal
logger = logging.getLogger("app")
@@ -59,3 +61,27 @@ async def fill_card_pool():
finally:
pool_filling = False
db.close()
BOOSTER_MAX = 5
BOOSTER_COOLDOWN_HOURS = 5
def check_boosters(user: UserModel, db: Session) -> tuple[int, datetime|None]:
if user.boosters_countdown is None:
user.boosters = 5
db.commit()
return (user.boosters, user.boosters_countdown)
now = datetime.now()
countdown = user.boosters_countdown
while user.boosters < BOOSTER_MAX:
next_tick = countdown + timedelta(hours=BOOSTER_COOLDOWN_HOURS)
if now >= next_tick:
user.boosters += 1
countdown = next_tick
else:
break
user.boosters_countdown = countdown if user.boosters < BOOSTER_MAX else None
db.commit()
return (user.boosters, user.boosters_countdown)