diff options
author | suhas <hi@suhas.one> | 2023-11-16 23:00:29 -0600 |
---|---|---|
committer | suhas <hi@suhas.one> | 2023-11-16 23:00:29 -0600 |
commit | 2e38b5aefb08abdd34d5244d0998274e5f35ff3e (patch) | |
tree | a221637a7eaa9195c8ae5322d8c73c1ad70e90a2 /cogs | |
parent | e0ede3dddabf27cde5a1db35e499885ece51f542 (diff) | |
download | qbb-2e38b5aefb08abdd34d5244d0998274e5f35ff3e.tar.gz |
add stats tracking
Diffstat (limited to 'cogs')
-rw-r--r-- | cogs/__init__.py | 0 | ||||
-rw-r--r-- | cogs/__pycache__/__init__.cpython-311.pyc | bin | 0 -> 147 bytes | |||
-rw-r--r-- | cogs/__pycache__/solo.cpython-311.pyc | bin | 3787 -> 3774 bytes | |||
-rw-r--r-- | cogs/__pycache__/stats.cpython-311.pyc | bin | 0 -> 4143 bytes | |||
-rw-r--r-- | cogs/__pycache__/tossup.cpython-311.pyc | bin | 3805 -> 3270 bytes | |||
-rw-r--r-- | cogs/solo.py | 2 | ||||
-rw-r--r-- | cogs/stats.py | 36 | ||||
-rw-r--r-- | cogs/tossup.py | 15 |
8 files changed, 44 insertions, 9 deletions
diff --git a/cogs/__init__.py b/cogs/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/cogs/__init__.py diff --git a/cogs/__pycache__/__init__.cpython-311.pyc b/cogs/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..17c16fd --- /dev/null +++ b/cogs/__pycache__/__init__.cpython-311.pyc Binary files differdiff --git a/cogs/__pycache__/solo.cpython-311.pyc b/cogs/__pycache__/solo.cpython-311.pyc index 6ede884..d6d2e68 100644 --- a/cogs/__pycache__/solo.cpython-311.pyc +++ b/cogs/__pycache__/solo.cpython-311.pyc Binary files differdiff --git a/cogs/__pycache__/stats.cpython-311.pyc b/cogs/__pycache__/stats.cpython-311.pyc new file mode 100644 index 0000000..dde7701 --- /dev/null +++ b/cogs/__pycache__/stats.cpython-311.pyc Binary files differdiff --git a/cogs/__pycache__/tossup.cpython-311.pyc b/cogs/__pycache__/tossup.cpython-311.pyc index 08b770b..419e663 100644 --- a/cogs/__pycache__/tossup.cpython-311.pyc +++ b/cogs/__pycache__/tossup.cpython-311.pyc Binary files differdiff --git a/cogs/solo.py b/cogs/solo.py index aab0b77..1652960 100644 --- a/cogs/solo.py +++ b/cogs/solo.py @@ -17,7 +17,7 @@ class Solo(GroupCog, name="solo"): @command(description="Do a tossup in solo mode (only you can control the tossup)") async def tossup(self, ctx: Interaction, category: Optional[question_category] = None): c = AsyncClient() - params = {'difficulties': [2,3,4,5]} + params: dict = {'difficulties': [2,3,4,5]} if category is not None: params['categories'] = category diff --git a/cogs/stats.py b/cogs/stats.py new file mode 100644 index 0000000..03031ec --- /dev/null +++ b/cogs/stats.py @@ -0,0 +1,36 @@ +from discord.ext.commands import Cog, Bot +from discord.app_commands import command +from discord import Interaction, Embed, Color +from prisma import Prisma +from prisma.models import User, CategoryBreakdown +from common.types import category_field_translations + +reverse_categories = {v: k for k, v in category_field_translations.items()} + +class Stats(Cog): + def __init__(self, bot: Bot) -> None: + self.bot = bot + super().__init__() + + @command(description="Get your statistics for qbb") + async def stats(self, ctx: Interaction): + db = Prisma(auto_register=True) + await db.connect() + stats = await User.prisma().find_first(where={'id': ctx.user.id}) + cb = await CategoryBreakdown.prisma().find_first(where={'userId': ctx.user.id}) + if stats is None or cb is None: + embed = Embed(title="No Stats!", description="You have no stats! Trying using the bot and then running this command", color=Color.red()) + return await ctx.response.send_message(embed=embed) + embed = Embed(title="Your Stats!", description=f"""**Number of correct tossups:** {stats.questions_correct} + **Number of incorrect tossups:** {stats.questions_incorrect} + """) + print(stats.category_breakdown.__str__()) + for cat in category_field_translations.values(): + corr = getattr(cb, f'{cat}_correct') + incorr = getattr(cb, f'{cat}_incorrect') + embed.add_field(name=reverse_categories[cat], value=f'{corr+incorr} heard ({corr} correct)') + await ctx.response.send_message(embed=embed) + await db.disconnect() + +async def setup(bot: Bot) -> None: + await bot.add_cog(Stats(bot)) diff --git a/cogs/tossup.py b/cogs/tossup.py index ae01519..3b62724 100644 --- a/cogs/tossup.py +++ b/cogs/tossup.py @@ -1,12 +1,10 @@ from discord.ext.commands import Cog, Bot from discord.app_commands import command, describe -from discord import Interaction, Embed, ButtonStyle -from discord.ui import View, Button, Modal, button, TextInput +from discord import Interaction, Embed from nltk import sent_tokenize from httpx import AsyncClient -from typing import Literal, Optional +from typing import Optional from common.types import question_category -from components.AnswerModal import Answer from components.TossupButtons import TossupButtons class Tossup(Cog): @@ -18,7 +16,7 @@ class Tossup(Cog): async def tossup(self, ctx: Interaction, category: Optional[question_category] = None): c = AsyncClient() - params = {"difficulties": [2, 3, 4, 5]} + params: dict = {"difficulties": [2, 3, 4, 5]} if category is not None: params["categories"] = category @@ -30,9 +28,10 @@ class Tossup(Cog): view: TossupButtons = TossupButtons(tossup) embed = Embed(title="Random Tossup", description=tossup["sentences"][0]) - embed.set_author( - name=f"{tossup['set']['name']} Packet {tossup['packetNumber']} Question {tossup['questionNumber']} (Category: {tossup['category']})" - ) + # embed.set_author( + # name=f"{tossup['set']['name']} Packet {tossup['packetNumber']} Question {tossup['questionNumber']} (Category: {tossup['category']})" + # ) + embed.set_author(name=tossup['answer']) embed.set_footer(text="Questions obtained from qbreader.org") await ctx.response.send_message(embed=embed, view=view) await c.aclose() |