From f251a5b995937864b7a0e11d9a320c1d41b3ffa8 Mon Sep 17 00:00:00 2001 From: khuxkm fbexl Date: Mon, 8 Jun 2020 16:06:27 -0400 Subject: [PATCH] Add script for a tildebadge leaderboard --- tildebadge_leaderboard.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tildebadge_leaderboard.py diff --git a/tildebadge_leaderboard.py b/tildebadge_leaderboard.py new file mode 100644 index 0000000..6d8214d --- /dev/null +++ b/tildebadge_leaderboard.py @@ -0,0 +1,23 @@ +import json, os.path, sys, csv +from collections import Counter + +with open(os.path.join(os.path.dirname(__file__),"badges.json")) as f: badges = json.load(f) +with open(os.path.join(os.path.dirname(__file__),"association.json")) as f: assoc = json.load(f) + +users = [] + +for user in badges: + n=0 + r=0 + for badge in badges[user]: + if badge["name"]!="Tildebadge": continue + n+=1 + r+=1 if badge["normal"] else 0 + if n: users.append([assoc.get(user,user),n,"{:02.2%}".format(r/n)]) + +users.sort(key=lambda x: (-x[1],-float(x[2][:-1]))) +seq = sorted([x[1] for x in users],reverse=True) +for i, u in enumerate(users): + u.insert(0,seq.index(u[1])+1) + +csv.writer(sys.stdout).writerows(users)