Archived
1
0
Fork 0
This commit is contained in:
多羅狼 2023-06-17 00:25:18 +08:00 committed by GitHub
parent dd2bc8d87b
commit 22f1fbdb77
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 7 deletions

View file

@ -307,9 +307,10 @@ async def _(msg: Bot.MessageSession, username: str):
result = await get_rank(msg, username)
if result is not None:
rate, rank, average_rate, surpassing_rate = result
user, rate, rank, average_rate, surpassing_rate = result
formatted_average_rate = "{:.4f}".format(average_rate)
formatted_surpassing_rate = "{:.2f}".format(surpassing_rate)
await msg.finish(msg.locale.t('maimai.message.rank', user=username,
await msg.finish(msg.locale.t('maimai.message.rank', user=user,
rate=rate, rank=rank, average_rate=formatted_average_rate,
surpassing_rate=formatted_surpassing_rate))

View file

@ -22,21 +22,24 @@ async def get_rank(msg, player):
rank = None
total_rate = 0
for i, scoreboard in enumerate(data):
if scoreboard['username'] == player:
sorted_data = sorted(data, key=lambda x: x['ra'], reverse=True)
for i, scoreboard in enumerate(sorted_data):
if scoreboard['username'].lower() == player.lower():
username = scoreboard['username']
rate = scoreboard['ra']
rank = i + 1
total_rate += scoreboard['ra']
average_rate = total_rate / len(data)
average_rate = total_rate / len(sorted_data)
if rank is None:
rank = 0
surpassing_rate = (len(data) - rank) / len(data) * 100
surpassing_rate = (len(sorted_data) - rank) / len(sorted_data) * 100
if rate is None:
await msg.finish(msg.locale.t('maimai.message.user_not_found'))
return None
return rate, rank, average_rate, surpassing_rate
return username, rate, rank, average_rate, surpassing_rate