-
Notifications
You must be signed in to change notification settings - Fork 6
/
server.py
109 lines (86 loc) · 2.54 KB
/
server.py
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import flask, os, pymongo
from threading import Thread
app = flask.Flask('')
myclient = pymongo.MongoClient(os.getenv("mongourl"))
mydb = myclient["cactusbot"]
userDB = mydb["users"]
def commas(i):
s,i="",str(i)
for x in range(len(i)//3):s=","+i[-3:]+s;i=i[:-3]
if i=="":s=s[1:]
return(i+s)
def get_pfp(user):
try:
user2 = client.get_user(user)
if user2.is_avatar_animated():
format = "gif"
else:
format = "png"
pfp = str(user2.avatar_url_as(format=format))
except AttributeError:
pfp = None
return pfp
def ranking():
users = list(userDB.find(
{
"user_id": {"$ne": 691576874261807134}
}
).sort("score", -1))
for item in users:
item["user_tag"] = str(client.get_user(item["user_id"]))
return users
@app.route('/')
def main():
return flask.render_template('index.html')
@app.route('/leaderboard')
def leaders():
ranks = ranking()
for a in range(len(ranks)):
ranks[a]["score"] = commas(ranks[a]["score"])
return flask.render_template('leaderboard.html', ranks=ranks, len=lambda a:len(a))
@app.route('/user/<ID>')
def profile(ID):