def record_wpm(name, user, wpm, token): authorized_limit = get_authorized_limit(user=user, token=token) if wpm > max(MAX_UNVERIFIED_WPM, authorized_limit) or len(name) > MAX_NAME_LENGTH: return with connect_db() as db: db("DELETE FROM leaderboard WHERE user_id = (%s)", [user]) db("INSERT INTO leaderboard (name, user_id, wpm) VALUES (%s, %s, %s)", [name, user, wpm])
def check_leaderboard_eligibility(wpm, user, token): with connect_db() as db: vals = db("SELECT wpm FROM leaderboard ORDER BY wpm DESC LIMIT 20").fetchall() threshold = vals[-1][0] if len(vals) >= 20 else 0 prev_best = db("SELECT wpm FROM leaderboard WHERE user_id=(%s)", [user]).fetchone() if prev_best: threshold = max(threshold, prev_best[0]) authorized_limit = get_authorized_limit(user=user, token=token) return { "eligible": wpm >= threshold, "needVerify": wpm > max(authorized_limit, MAX_UNVERIFIED_WPM) }