bugfix
This commit is contained in:
parent
dd2bc8d87b
commit
22f1fbdb77
2 changed files with 11 additions and 7 deletions
|
@ -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))
|
|
@ -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
|
Reference in a new issue