Closed FabianBartl closed 1 year ago
def getRankings(member: Member) -> dict[str: int]:
users_data = dict()
path = os.path.join(DIR.DATA, "users")
for filename in os.listdir(path):
with open(os.path.join(path, filename), "r") as fobj: data = json.load(fobj)
last_user = filename.split(".")[0]
users_data[last_user] = data
with open(os.path.join(DIR.CONFIGS, "badges.json"), "r") as fobj: badges_config = json.load(fobj)
rankings = dict()
for badgeID in badges_config:
name = badges_config[badgeID]["name"]
unsorted = { userID: users_data[userID].get(name, 0) for userID in users_data }
rankings[badgeID] = sortDictByValue(unsorted, True)
ranking = dict()
for badgeID in badges_config:
for rank, pair in enumerate(rankings[badgeID]):
if pair[0] == str(member.id):
ranking[badgeID] = rank+1
break
return ranking
Hat meiste XP aber nicht Rang 1?
used in #15