From b25c5247596e1a2176a9f00aaf2bf228b0a260c1 Mon Sep 17 00:00:00 2001 From: Corban-Lee Jones Date: Sat, 3 Aug 2024 10:21:07 +0100 Subject: [PATCH] Support default avatars #23 Fixes #23 --- apps/authentication/models.py | 5 +++++ apps/authentication/views.py | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/authentication/models.py b/apps/authentication/models.py index 7a889e1..1f43089 100644 --- a/apps/authentication/models.py +++ b/apps/authentication/models.py @@ -121,6 +121,11 @@ class DiscordUser(PermissionsMixin): @property def avatar_url(self): + # Default avatar + if len(self.avatar) <= 1: + return f"https://cdn.discordapp.com/embed/avatars/{self.avatar}.png" + + # Custom avatar return f"https://cdn.discordapp.com/avatars/{self.id}/{self.avatar}.webp?size=128" @property diff --git a/apps/authentication/views.py b/apps/authentication/views.py index 0820821..2a8d7bc 100644 --- a/apps/authentication/views.py +++ b/apps/authentication/views.py @@ -101,10 +101,14 @@ class DiscordLoginRedirect(View): url=f"{settings.DISCORD_API_URL}/users/@me", headers={"Authorization": f"Bearer {access_token}"} ) - log.debug(response) - return response.json() + data = response.json() + + if not data.get("avatar"): + data["avatar"] = int(data["id"]) % 5 + + return data class Login(TemplateView):