Update economy.py (#1898)

This commit is contained in:
Redjumpman 2018-07-11 21:22:29 -04:00 committed by Kowlin
parent 79a3164d9d
commit 9d0eca1914

View File

@ -9,7 +9,8 @@ import discord
from redbot.cogs.bank import check_global_setting_guildowner, check_global_setting_admin from redbot.cogs.bank import check_global_setting_guildowner, check_global_setting_admin
from redbot.core import Config, bank, commands from redbot.core import Config, bank, commands
from redbot.core.i18n import Translator, cog_i18n from redbot.core.i18n import Translator, cog_i18n
from redbot.core.utils.chat_formatting import pagify, box from redbot.core.utils.chat_formatting import box
from redbot.core.utils.menus import menu, DEFAULT_CONTROLS
from redbot.core.bot import Red from redbot.core.bot import Red
@ -309,8 +310,8 @@ class Economy:
"""Prints out the leaderboard """Prints out the leaderboard
Defaults to top 10""" Defaults to top 10"""
# Originally coded by Airenkun - edited by irdumb, rewritten by Palm__ for v3
guild = ctx.guild guild = ctx.guild
author = ctx.author
if top < 1: if top < 1:
top = 10 top = 10
if ( if (
@ -320,25 +321,25 @@ class Economy:
bank_sorted = await bank.get_leaderboard(positions=top, guild=guild) bank_sorted = await bank.get_leaderboard(positions=top, guild=guild)
if len(bank_sorted) < top: if len(bank_sorted) < top:
top = len(bank_sorted) top = len(bank_sorted)
highscore = "" header = f"{f'#':4}{f'Name':36}{f'Score':2}\n"
for pos, acc in enumerate(bank_sorted, 1): highscores = [
pos = pos (
poswidth = 2 f"{f'{pos}.': <{3 if pos < 10 else 2}} {acc[1]['name']: <{35}s} "
name = acc[1]["name"] f"{acc[1]['balance']: >{2 if pos < 10 else 1}}\n"
namewidth = 35
balance = acc[1]["balance"]
balwidth = 2
highscore += "{pos: <{poswidth}} {name: <{namewidth}s} {balance: >{balwidth}}\n".format(
pos=pos,
poswidth=poswidth,
name=name,
namewidth=namewidth,
balance=balance,
balwidth=balwidth,
) )
if highscore != "": if acc[0] != author.id
for page in pagify(highscore, shorten_by=12): else (
await ctx.send(box(page, lang="py")) f"{f'{pos}.': <{3 if pos < 10 else 2}} <<{acc[1]['name'] + '>>': <{33}s} "
f"{acc[1]['balance']: >{2 if pos < 10 else 1}}\n"
)
for pos, acc in enumerate(bank_sorted, 1)
]
if highscores:
pages = [
f"```md\n{header}{''.join(''.join(highscores[x:x + 10]))}```"
for x in range(0, len(highscores), 10)
]
await menu(ctx, pages, DEFAULT_CONTROLS)
else: else:
await ctx.send(_("There are no accounts in the bank.")) await ctx.send(_("There are no accounts in the bank."))