From 8feeb2896844ea9c87f70d1d96c73962a6ab6f0e Mon Sep 17 00:00:00 2001 From: Kae Bartlett Date: Sun, 7 Apr 2024 20:15:43 +0100 Subject: [PATCH] Add global name to user object --- novus/models/guild_member.py | 4 +++- novus/models/user.py | 8 ++++++-- novus/payloads/user.py | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/novus/models/guild_member.py b/novus/models/guild_member.py index 3c159a75..c33ad4a1 100644 --- a/novus/models/guild_member.py +++ b/novus/models/guild_member.py @@ -64,6 +64,8 @@ class GuildMember(Hashable, Messageable): The ID of the user. username : str The username of the user. + global_name : str | None + The global name of the user. discriminator : str The discriminator of the user. avatar_hash : str | None @@ -268,7 +270,7 @@ def __init__( __repr__ = generate_repr(("id", "username", "bot", "guild",)) def __str__(self) -> str: - return str(self._user) + return self.nick or str(self._user) @property def mention(self) -> str: diff --git a/novus/models/user.py b/novus/models/user.py index 242f1865..f9d2507d 100644 --- a/novus/models/user.py +++ b/novus/models/user.py @@ -47,6 +47,8 @@ class User(Hashable, Messageable): The ID of the user. username : str The username of the user. + global_name : str | None + The global name of the user. discriminator : str The discriminator of the user. avatar_hash : str | None @@ -89,6 +91,7 @@ class User(Hashable, Messageable): 'state', 'id', 'username', + 'global_name', 'discriminator', 'avatar_hash', 'bot', @@ -119,11 +122,11 @@ def __init__( self._dm_channel: Channel | None = None self._update(data) - __repr__ = generate_repr(('id', 'username', 'bot',)) + __repr__ = generate_repr(('id', 'global_name', 'bot',)) def __str__(self) -> str: if self.discriminator == "0": - return self.username + return self.global_name or self.username return f"{self.username}#{self.discriminator}" @property @@ -174,6 +177,7 @@ def _update(self, data: payloads.User | payloads.PartialUser) -> Self: """ self.username = data['username'] + self.global_name = data.get('global_name') self.discriminator = data['discriminator'] del self.default_avatar self.avatar_hash = data.get('avatar') diff --git a/novus/payloads/user.py b/novus/payloads/user.py index 9942369b..4e405c30 100644 --- a/novus/payloads/user.py +++ b/novus/payloads/user.py @@ -67,6 +67,7 @@ class _UserOptional(TypedDict, total=False): class User(_UserOptional): id: Snowflake username: str + global_name: Optional[str] discriminator: int avatar: Optional[str]