Add user cache to ctc2 guesses

This commit is contained in:
Zeva Rose 2022-08-10 14:28:49 -06:00
parent f53fae1dcf
commit 469c0a9351

View file

@ -5,6 +5,8 @@ import re
import aiohttp
from jarvis_core.db import q
from jarvis_core.db.models import Guess
from jarvis.utils import build_embed
from naff import Client, Extension, InteractionContext
from naff.ext.paginators import Paginator
from naff.models.discord.components import ActionRow, Button, ButtonStyles
@ -109,14 +111,16 @@ class CTCCog(Extension):
@cooldown(bucket=Buckets.USER, rate=1, interval=2)
async def _guesses(self, ctx: InteractionContext) -> None:
await ctx.defer()
cache = {}
guesses = Guess.find().sort("correct", -1).sort("id", -1)
fields = []
async for guess in guesses:
user = await self.bot.fetch_user(guess["user"])
user = cache.get(guess["user"]) or await self.bot.fetch_user(guess["user"])
if not user:
user = "[redacted]"
if isinstance(user, (Member, User)):
user = user.username + "#" + user.discriminator
cache[guess["user"]] = user
name = "Correctly" if guess["correct"] else "Incorrectly"
name += " guessed by: " + user
fields.append(