1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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"]
|