tweak(stats): Extend lb graphics for abstraction.
This commit is contained in:
@@ -8,9 +8,16 @@ async def get_leaderboard_card(
|
|||||||
bot: LionBot, highlightid: int, guildid: int,
|
bot: LionBot, highlightid: int, guildid: int,
|
||||||
mode: CardMode,
|
mode: CardMode,
|
||||||
entry_data: list[tuple[int, int, int]], # userid, position, time
|
entry_data: list[tuple[int, int, int]], # userid, position, time
|
||||||
|
name_map: dict[int, str] = {},
|
||||||
|
extra_skin_args = {},
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Render a leaderboard card with given parameters.
|
Render a leaderboard card with given parameters.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
name_map: dict[int, str]
|
||||||
|
Map of userid -> name, used first before cache or fetch.
|
||||||
"""
|
"""
|
||||||
guild = bot.get_guild(guildid)
|
guild = bot.get_guild(guildid)
|
||||||
if guild is None:
|
if guild is None:
|
||||||
@@ -20,8 +27,12 @@ async def get_leaderboard_card(
|
|||||||
avatars = {}
|
avatars = {}
|
||||||
names = {}
|
names = {}
|
||||||
missing = []
|
missing = []
|
||||||
|
|
||||||
for userid, _, _ in entry_data:
|
for userid, _, _ in entry_data:
|
||||||
if guild and (member := guild.get_member(userid)):
|
if (name := name_map.get(userid, None)):
|
||||||
|
avatars[userid] = None
|
||||||
|
names[userid] = name
|
||||||
|
elif guild and (member := guild.get_member(userid)):
|
||||||
avatars[userid] = member.avatar.key if member.avatar else None
|
avatars[userid] = member.avatar.key if member.avatar else None
|
||||||
names[userid] = member.display_name
|
names[userid] = member.display_name
|
||||||
elif (user := bot.get_user(userid)):
|
elif (user := bot.get_user(userid)):
|
||||||
@@ -65,7 +76,7 @@ async def get_leaderboard_card(
|
|||||||
guildid, None, LeaderboardCard.card_id
|
guildid, None, LeaderboardCard.card_id
|
||||||
)
|
)
|
||||||
card = LeaderboardCard(
|
card = LeaderboardCard(
|
||||||
skin=skin | {'mode': mode},
|
skin=skin | {'mode': mode} | extra_skin_args,
|
||||||
server_name=guild.name,
|
server_name=guild.name,
|
||||||
entries=entries,
|
entries=entries,
|
||||||
highlight=highlight
|
highlight=highlight
|
||||||
|
|||||||
Reference in New Issue
Block a user