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