From d3844ac7a76f2c1af2484a5782afa61ba83b391e Mon Sep 17 00:00:00 2001 From: retoor Date: Sun, 25 May 2025 19:01:28 +0200 Subject: [PATCH] Resoted avatars. --- src/snek/view/avatar.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/snek/view/avatar.py b/src/snek/view/avatar.py index bb0e81d..d129f5e 100644 --- a/src/snek/view/avatar.py +++ b/src/snek/view/avatar.py @@ -51,19 +51,25 @@ class AvatarView(BaseView): async def get_animal(self): uid = self.request.match_info.get("uid") + if uid == "unique": + uid = str(uuid.uuid4()) + key = "avatar_animal_" + uid + + avatar = await self.app.get(key) + if avatar: + return web.Response(text=avatar, content_type="image/svg+xml") + while True: try: - return web.Response(text=self._get(uid), content_type="image/svg+xml") + avatar = generate_avatar_with_options(self.request.query) + await self.app.set(key, avatar) + return web.Response(text=avatar, content_type="image/svg+xml") except Exception as e: pass def _get(self, uid): - if uid in self.avatars: - return self.avatars[uid] - avatar = generate_avatar_with_options(self.request.query) - self.avatars[uid] = avatar return avatar async def get_default(self):