Edit embeds to provide bot information for submission.
This commit is contained in:
+10
-2
@@ -175,7 +175,7 @@ class Submission:
|
|||||||
"""
|
"""
|
||||||
self._username = username
|
self._username = username
|
||||||
|
|
||||||
def get_embed(self) -> Embed:
|
def get_embeds(self) -> "list[Embed]":
|
||||||
"""Creates an embed based off of the submission state and fields filled out."""
|
"""Creates an embed based off of the submission state and fields filled out."""
|
||||||
state: SubmissionState = self.submission_state
|
state: SubmissionState = self.submission_state
|
||||||
|
|
||||||
@@ -209,7 +209,15 @@ class Submission:
|
|||||||
embed.add_field(name="Category", value=session.scalar(stmt), inline=False)
|
embed.add_field(name="Category", value=session.scalar(stmt), inline=False)
|
||||||
if self.score:
|
if self.score:
|
||||||
embed.add_field(name="Score", value=self.score, inline=False)
|
embed.add_field(name="Score", value=self.score, inline=False)
|
||||||
return embed
|
|
||||||
|
embeds = [embed]
|
||||||
|
|
||||||
|
if state is SubmissionState.VERIFY:
|
||||||
|
embed = Embed(title="Bot Information", description="Please disregard.")
|
||||||
|
embed.add_field(name="GroupId", value=self.group_id)
|
||||||
|
embed.add_field(name="CategoryId", value=self.category_id)
|
||||||
|
embeds.append(embed)
|
||||||
|
return embeds
|
||||||
|
|
||||||
|
|
||||||
class SubmissionMap:
|
class SubmissionMap:
|
||||||
|
|||||||
@@ -52,14 +52,14 @@ class SubmissionListener(commands.Cog, name="Message Listener"):
|
|||||||
time_regex = re.search("^([0-9]{1,2}:[0-9]|[0-9])?[0-9](\\.[0-9])?$", message.content)
|
time_regex = re.search("^([0-9]{1,2}:[0-9]|[0-9])?[0-9](\\.[0-9])?$", message.content)
|
||||||
int_regex = re.search("^[0-9]+$", message.content)
|
int_regex = re.search("^[0-9]+$", message.content)
|
||||||
if time_regex is None and is_time_record:
|
if time_regex is None and is_time_record:
|
||||||
embed = submission_message.embeds[0]
|
embeds = submission_message.embeds[0]
|
||||||
embed.add_field(
|
embeds.add_field(
|
||||||
name="Error",
|
name="Error",
|
||||||
value="Time record must follow format MM:SS.ms, SS.ms, or SS.",
|
value="Time record must follow format MM:SS.ms, SS.ms, or SS.",
|
||||||
)
|
)
|
||||||
elif int_regex is None and not is_time_record:
|
elif int_regex is None and not is_time_record:
|
||||||
embed = submission_message.embeds[0]
|
embeds = submission_message.embeds[0]
|
||||||
embed.add_field(name="Error", value="Number record must only be number.")
|
embeds.add_field(name="Error", value="Number record must only be number.")
|
||||||
else:
|
else:
|
||||||
score = message.content
|
score = message.content
|
||||||
if is_time_record:
|
if is_time_record:
|
||||||
@@ -77,9 +77,9 @@ class SubmissionListener(commands.Cog, name="Message Listener"):
|
|||||||
# if there is a minute 10ths place 0, remove
|
# if there is a minute 10ths place 0, remove
|
||||||
score = score.lstrip("0")
|
score = score.lstrip("0")
|
||||||
submission.score = score
|
submission.score = score
|
||||||
embed = submission.get_embed()
|
embeds = submission.get_embeds()
|
||||||
await submission_message.edit(
|
await submission_message.edit(
|
||||||
embed=embed,
|
embeds=embeds,
|
||||||
)
|
)
|
||||||
elif state == SubmissionState.PROOF and len(message.attachments) > 0:
|
elif state == SubmissionState.PROOF and len(message.attachments) > 0:
|
||||||
await submission_message.edit(
|
await submission_message.edit(
|
||||||
@@ -87,9 +87,9 @@ class SubmissionListener(commands.Cog, name="Message Listener"):
|
|||||||
)
|
)
|
||||||
elif state == SubmissionState.NAME and message.content:
|
elif state == SubmissionState.NAME and message.content:
|
||||||
submission.username = message.content
|
submission.username = message.content
|
||||||
embed = submission.get_embed()
|
embeds = submission.get_embeds()
|
||||||
await submission_message.edit(
|
await submission_message.edit(
|
||||||
embed=embed,
|
embeds=embeds,
|
||||||
)
|
)
|
||||||
|
|
||||||
await message.delete()
|
await message.delete()
|
||||||
|
|||||||
@@ -45,9 +45,9 @@ class SubmissionDropdown(nextcord.ui.Select):
|
|||||||
async def callback(self, interaction: nextcord.Interaction):
|
async def callback(self, interaction: nextcord.Interaction):
|
||||||
submission = submission_objects.get_user_submission(interaction.user.id)
|
submission = submission_objects.get_user_submission(interaction.user.id)
|
||||||
submission.category_id = self.values[0]
|
submission.category_id = self.values[0]
|
||||||
embed = submission.get_embed()
|
embeds = submission.get_embeds()
|
||||||
await interaction.message.edit(
|
await interaction.message.edit(
|
||||||
embed=embed,
|
embeds=embeds,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -63,8 +63,8 @@ class BackButton(nextcord.ui.Button):
|
|||||||
state: SubmissionState = submission.submission_state
|
state: SubmissionState = submission.submission_state
|
||||||
state = SubmissionState(state.value - 1)
|
state = SubmissionState(state.value - 1)
|
||||||
submission.submission_state = state
|
submission.submission_state = state
|
||||||
embed = submission.get_embed()
|
embeds = submission.get_embeds()
|
||||||
await interaction.edit(embed=embed, view=SubmissionView(self._bot, interaction.user.id))
|
await interaction.edit(embeds=embeds, view=SubmissionView(self._bot, interaction.user.id))
|
||||||
|
|
||||||
|
|
||||||
class CancelButton(nextcord.ui.Button):
|
class CancelButton(nextcord.ui.Button):
|
||||||
@@ -98,8 +98,8 @@ class NextButton(nextcord.ui.Button):
|
|||||||
else:
|
else:
|
||||||
state = SubmissionState(state.value + 1)
|
state = SubmissionState(state.value + 1)
|
||||||
submission.submission_state = state
|
submission.submission_state = state
|
||||||
embed = submission.get_embed()
|
embeds = submission.get_embeds()
|
||||||
await interaction.edit(embed=embed, view=SubmissionView(self._bot, interaction.user.id))
|
await interaction.edit(embeds=embeds, view=SubmissionView(self._bot, interaction.user.id))
|
||||||
|
|
||||||
|
|
||||||
class SubmitButton(nextcord.ui.Button):
|
class SubmitButton(nextcord.ui.Button):
|
||||||
@@ -121,12 +121,12 @@ class SubmitButton(nextcord.ui.Button):
|
|||||||
|
|
||||||
submission.submission_state = SubmissionState.VERIFY
|
submission.submission_state = SubmissionState.VERIFY
|
||||||
|
|
||||||
embed = submission.get_embed()
|
embeds = submission.get_embeds()
|
||||||
|
|
||||||
await channel.send(
|
await channel.send(
|
||||||
files=[await attch.to_file() for attch in interaction.message.attachments],
|
files=[await attch.to_file() for attch in interaction.message.attachments],
|
||||||
view=VerificationView(),
|
view=VerificationView(),
|
||||||
embed=embed,
|
embeds=embeds,
|
||||||
content=f"Submission from <@{interaction.user.id}>.",
|
content=f"Submission from <@{interaction.user.id}>.",
|
||||||
)
|
)
|
||||||
await interaction.message.edit(content=f"<@{interaction.user.id}> Submitted!", view=None)
|
await interaction.message.edit(content=f"<@{interaction.user.id}> Submitted!", view=None)
|
||||||
@@ -170,7 +170,7 @@ class SubmissionCreateButton(nextcord.ui.View):
|
|||||||
|
|
||||||
submission_objects.add_submission(interaction.user.id, submission)
|
submission_objects.add_submission(interaction.user.id, submission)
|
||||||
|
|
||||||
embed = submission.get_embed()
|
embeds = submission.get_embeds()
|
||||||
|
|
||||||
submission_message = await channel.send(
|
submission_message = await channel.send(
|
||||||
f"<@{interaction.user.id}>",
|
f"<@{interaction.user.id}>",
|
||||||
@@ -178,7 +178,7 @@ class SubmissionCreateButton(nextcord.ui.View):
|
|||||||
self._bot,
|
self._bot,
|
||||||
interaction.user.id,
|
interaction.user.id,
|
||||||
),
|
),
|
||||||
embed=embed,
|
embeds=embeds,
|
||||||
)
|
)
|
||||||
|
|
||||||
# update the message_id once its created
|
# update the message_id once its created
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ class VerificationView(nextcord.ui.View):
|
|||||||
self, button: nextcord.ui.Button, interaction: nextcord.Interaction
|
self, button: nextcord.ui.Button, interaction: nextcord.Interaction
|
||||||
): # pylint: disable=unused-argument
|
): # pylint: disable=unused-argument
|
||||||
"""Button for approving score submission."""
|
"""Button for approving score submission."""
|
||||||
content = interaction.message.embeds[0].to_dict()
|
for embed in interaction.message.embeds:
|
||||||
|
content = embed.to_dict()
|
||||||
|
|
||||||
for field in content["fields"]:
|
for field in content["fields"]:
|
||||||
if field["name"] == "GroupId":
|
if field["name"] == "GroupId":
|
||||||
@@ -41,7 +42,8 @@ class VerificationView(nextcord.ui.View):
|
|||||||
await submit_score(interaction, group_id, category_id, user, score)
|
await submit_score(interaction, group_id, category_id, user, score)
|
||||||
content = interaction.message.content
|
content = interaction.message.content
|
||||||
content += f"\nApproved by <@{interaction.user.id}>."
|
content += f"\nApproved by <@{interaction.user.id}>."
|
||||||
await interaction.message.edit(content=content, view=None)
|
# remove the bot information embed. it should always be the first one.
|
||||||
|
await interaction.message.edit(content=content, view=None, embed=interaction.message.embeds[0])
|
||||||
except UnboundLocalError:
|
except UnboundLocalError:
|
||||||
await interaction.send("Instruct user to submit with all fields.")
|
await interaction.send("Instruct user to submit with all fields.")
|
||||||
await interaction.message.edit(view=None)
|
await interaction.message.edit(view=None)
|
||||||
|
|||||||
Reference in New Issue
Block a user