From 5461621c421130bd359efff4a10c3e1ba330e85c Mon Sep 17 00:00:00 2001 From: akiyamn Date: Thu, 2 Nov 2023 22:29:09 +1100 Subject: Init --- be/points.py | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 be/points.py (limited to 'be/points.py') diff --git a/be/points.py b/be/points.py new file mode 100644 index 0000000..9ad693b --- /dev/null +++ b/be/points.py @@ -0,0 +1,79 @@ +import shelve + + +def init_databases(teams, clear=False): + with shelve.open("points.db", writeback=True) as db: + for team in teams: + if team not in db or clear: + db[team] = {} + db[team]["__total"] = 0 + with shelve.open("settings.db", writeback=True) as db: + if "multiplier" not in db or clear: + db["multiplier"] = {} + for team in teams: + if team not in db["multiplier"] or clear: + db["multiplier"][team] = 1 + db["prompt"] = "" + + +# def init_settings(clear=False): +# with shelve.open("settings.db") as db: +# if "multiplier" not in db or clear: +# db["multiplier"] = 1 + + +def increment_points(team, username, amount): + with shelve.open("points.db", writeback=True) as db: + if username not in db[team]: + db[team][username] = 0 + db[team][username] += amount + db[team]["__total"] += amount + return db[team][username] + + +def get_user_points(team, username): + with shelve.open("points.db") as db: + if username in db[team]: + return db[team][username] + return 0 + + +def get_team_points(team): + return get_user_points(team, "__total") + + +def get_leaderboard(): + multipliers = None + with shelve.open("settings.db") as db: + multipliers = db["multiplier"] + with shelve.open("points.db") as db: + return { + "settings": { + "prompt": get_prompt(), + "multiplier": multipliers + } + , + "points": dict(db), + } + + +def get_multiplier(team): + with shelve.open("settings.db") as db: + return db["multiplier"][team] + + +def set_multiplier(team, multiplier): + with shelve.open("settings.db", writeback=True) as db: + db["multiplier"][team] = multiplier + return db["multiplier"][team] + + +def get_prompt(): + with shelve.open("settings.db") as db: + return db["prompt"] + + +def set_prompt(prompt): + with shelve.open("settings.db", writeback=True) as db: + db["prompt"] = prompt + return db["prompt"] -- cgit v1.2.3