summaryrefslogtreecommitdiff
path: root/be/points.py
diff options
context:
space:
mode:
authorakiyamn2023-11-02 22:29:09 +1100
committerakiyamn2023-11-02 22:29:09 +1100
commit5461621c421130bd359efff4a10c3e1ba330e85c (patch)
tree32ab149b5993b89c42a46449c23c102858faa3a2 /be/points.py
downloadjacbday-5461621c421130bd359efff4a10c3e1ba330e85c.tar.gz
jacbday-5461621c421130bd359efff4a10c3e1ba330e85c.zip
Init
Diffstat (limited to 'be/points.py')
-rw-r--r--be/points.py79
1 files changed, 79 insertions, 0 deletions
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"]