Skip to content

Commit 770bd6a

Browse files
committed
Improves the get_user_text function to fetch user and member
1 parent 77de9e7 commit 770bd6a

1 file changed

Lines changed: 20 additions & 14 deletions

File tree

techsupport_bot/commands/duck.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ async def friends(self: Self, ctx: commands.Context) -> None:
564564
embed.color = embed_colors.green()
565565

566566
embed.add_field(
567-
name=self.get_user_text(duck_user),
567+
name=await self.get_user_text(duck_user, ctx.guild),
568568
value=f"Friends: `{duck_user.befriend_count}`",
569569
inline=False,
570570
)
@@ -597,18 +597,20 @@ async def record(self: Self, ctx: commands.Context) -> None:
597597
channel=ctx.channel,
598598
)
599599
return
600-
record_user = (
600+
record_user_entry = (
601601
await self.bot.models.DuckUser.query.where(
602602
self.bot.models.DuckUser.speed_record == record_time
603603
)
604604
.where(self.bot.models.DuckUser.guild_id == str(ctx.guild.id))
605605
.gino.first()
606606
)
607-
608607
embed = discord.Embed(title="Duck Speed Record")
609608
embed.color = embed_colors.green()
610609
embed.add_field(name="Time", value=f"{str(record_time)} seconds")
611-
embed.add_field(name="Record Holder", value=f"<@{record_user.author_id}>")
610+
embed.add_field(
611+
name="Record Holder",
612+
value=await self.get_user_text(record_user_entry, ctx.guild),
613+
)
612614
embed.set_thumbnail(url=self.DUCK_PIC_URL)
613615

614616
await ctx.send(embed=embed)
@@ -659,7 +661,7 @@ async def killers(self: Self, ctx: commands.Context) -> None:
659661
embed.color = embed_colors.green()
660662

661663
embed.add_field(
662-
name=self.get_user_text(duck_user),
664+
name=await self.get_user_text(duck_user, ctx.guild),
663665
value=f"Kills: `{duck_user.kill_count}`",
664666
inline=False,
665667
)
@@ -671,23 +673,27 @@ async def killers(self: Self, ctx: commands.Context) -> None:
671673

672674
await ui.PaginateView().send(ctx.channel, ctx.author, embeds)
673675

674-
def get_user_text(self: Self, duck_user: bot.models.DuckUser) -> str:
676+
async def get_user_text(
677+
self: Self, duck_user: bot.models.DuckUser, guild: discord.Guild
678+
) -> str:
675679
"""Gets the name of a user formatted to be displayed across the extension
676680
677681
Args:
678682
duck_user (bot.models.DuckUser): The database entry of the user to format
683+
guild (discord.Guild): The guild to fetch duck records from
679684
680685
Returns:
681686
str: The username in a pretty string format, ready to print
682687
"""
683-
user = self.bot.get_user(int(duck_user.author_id))
684-
if user:
685-
user_text = f"{user.display_name}"
686-
user_text_extra = f"({user.name})" if user.name != user.display_name else ""
687-
else:
688-
user_text = "<Unknown>"
689-
user_text_extra = ""
690-
return f"{user_text}{user_text_extra}"
688+
user_object = await self.bot.fetch_user(duck_user.author_id)
689+
display_name = user_object.global_name
690+
try:
691+
member_object = await guild.fetch_member(user_object.id)
692+
display_name = member_object.display_name
693+
except discord.NotFound:
694+
...
695+
696+
return f"`{display_name}` (`{user_object.name}`)"
691697

692698
@auxiliary.with_typing
693699
@commands.guild_only()

0 commit comments

Comments
 (0)