Есть топ игроков в боте, но у людей с одинаковым уровнем - одинаковый ник.
Топ 10 профи.
1 • FRESH - 38 уровень.
2 • ᗪ乇丂爪ㄖҜ乇 - 2 уровень.
3 • ᗪ乇丂爪ㄖҜ乇 - 2 уровень.
4 • ᗪ乇丂爪ㄖҜ乇 - 2 уровень.
5 • /root@ᎠeadiŇside (дед) - 1 уровень.
6 • /root@ᎠeadiŇside (дед) - 1 уровень.
7 • /root@ᎠeadiŇside (дед) - 1 уровень.
8 • /root@ᎠeadiŇside (дед) - 1 уровень.
9 • /root@ᎠeadiŇside (дед) - 1 уровень.
10 • /root@ᎠeadiŇside (дед) - 1 уровень.
Как видите, у людей с 1 и 2 уровнем одинаковый ник, хотя аккаунты разные.
Вот код:
@dp.message_handler(commands=['top_lvl'])
async def cmd_top(message: types.Message):
tops = cursor.execute("SELECT lvl FROM users").fetchall()
tops.sort()
top1 = tops[-1][0]
top2 = tops[-2][0]
top3 = tops[-3][0]
top4 = tops[-4][0]
top5 = tops[-5][0]
top6 = tops[-6][0]
top7 = tops[-7][0]
top8 = tops[-8][0]
top9 = tops[-9][0]
top10 = tops[-10][0]
allt = [top1, top2, top3, top4, top5, top6, top7, top8, top9, top10]
alltops = ""
num = 0
for x in allt:
get = cursor.execute("SELECT user_id FROM users WHERE lvl=?", (x,)).fetchall()
user = await bot.get_chat(str(get[0][0]))
fname = quote_html(user.full_name)
num += 1
alltops += f"{num} • {fname} - <b><i>{x}</i></b> уровень.\n"
await message.reply(f"Топ 10 профи.\n\n{alltops}")