aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Shom770 <[email protected]>2021-11-04 11:26:38 -0400
committerGravatar Shom770 <[email protected]>2022-02-09 18:13:37 -0500
commit7ce200cbe8875baa7071abad4dcca1c7492bf366 (patch)
tree8b36ed2ae98ba4bf58b6aac4fc30519d46fb52d1
parentfixing list showing zero-width spaces (diff)
cog description for .trivianight, and allowing to pick questions that were already chosen
-rw-r--r--bot/exts/events/trivianight/_questions.py13
-rw-r--r--bot/exts/events/trivianight/trivianight.py17
2 files changed, 23 insertions, 7 deletions
diff --git a/bot/exts/events/trivianight/_questions.py b/bot/exts/events/trivianight/_questions.py
index 6937d8ec..8b4df74d 100644
--- a/bot/exts/events/trivianight/_questions.py
+++ b/bot/exts/events/trivianight/_questions.py
@@ -162,7 +162,7 @@ class Questions:
If the number parameter is specified, it'll head to that specific question.
"""
- if all("visited" in question.keys() for question in self.questions):
+ if all("visited" in question.keys() for question in self.questions) and number is None:
return Embed(
title=choice(NEGATIVE_REPLIES),
description="All of the questions in the question bank have been used.",
@@ -179,7 +179,7 @@ class Questions:
self.questions[question_number]["visited"] = True
self.view.current_question = self.questions[question_number]
- def list_questions(self) -> str:
+ def list_questions(self) -> Union[Embed, str]:
"""
Lists all questions from the question bank.
@@ -188,11 +188,16 @@ class Questions:
- Question description
- If the question was already 'visited' (displayed)
"""
+ if not self.questions:
+ return Embed(
+ title=choice(NEGATIVE_REPLIES),
+ description="No questions are currently loaded in!",
+ color=Colours.soft_red
+ )
spaces = len(sorted(self.questions, key=lambda question: len(question['description']))[-1]["description"]) + 3
formatted_string = ""
for question in self.questions:
- question_description = question['description'].replace("\u200b", "")
- formatted_string += f"`Q{question['number']}: {question_description!r}" \
+ formatted_string += f"`Q{question['number']}: {question['description']}" \
f"{' ' * (spaces - len(question['description']) + 2)}" \
f"|` {':x:' if not question.get('visited') else ':checkmark:'}\n"
diff --git a/bot/exts/events/trivianight/trivianight.py b/bot/exts/events/trivianight/trivianight.py
index 62b619e8..37a29222 100644
--- a/bot/exts/events/trivianight/trivianight.py
+++ b/bot/exts/events/trivianight/trivianight.py
@@ -30,7 +30,15 @@ class TriviaNight(commands.Cog):
@commands.group()
async def trivianight(self, ctx: commands.Context) -> None:
"""No-op subcommand group for organizing different commands."""
- return
+ cog_description = Embed(
+ title="What is .trivianight?",
+ description=(
+ "This 'cog' is for the Python Discord's TriviaNight (date tentative)! Compete against other"
+ "players in a trivia about Python!"
+ ),
+ color=Colours.soft_green
+ )
+ await ctx.send(embed=cog_description)
@trivianight.command()
async def load(self, ctx: commands.Context) -> None:
@@ -88,8 +96,11 @@ class TriviaNight(commands.Cog):
@trivianight.command()
async def list(self, ctx: commands.Context) -> None:
"""Displays all the questions from the question bank."""
- formatted_string = self.questions.list_questions()
- await ctx.send(formatted_string)
+ question_list = self.questions.list_questions()
+ if isinstance(question_list, Embed):
+ await ctx.send(embed=question_list)
+
+ await ctx.send(question_list)
@trivianight.command()
async def stop(self, ctx: commands.Context) -> None: