aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-05-06 23:35:20 -0700
committerGravatar MarkKoz <[email protected]>2020-06-13 11:21:07 -0700
commitfd4bed07a08a5fdbd482345c99838131dba45e98 (patch)
treee310bd84480fe60fd160402a2799c636c0beb0a4
parentCode block: move bot message retrieval to a separate function (diff)
Code block: edit instructions if edited message is still invalid
Editing instructions means the user will always see what is currently relevant to them. Sometimes an incorrect edit could result in a different problem that was not mentioned in the original instructions. This change also fixes detection of fixed messages by using the same detection logic as the original `on_message`. Previously, it considered an edited message without code blocks to be fixed.
-rw-r--r--bot/cogs/codeblock/cog.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/bot/cogs/codeblock/cog.py b/bot/cogs/codeblock/cog.py
index 276bf8f9b..5844f4d16 100644
--- a/bot/cogs/codeblock/cog.py
+++ b/bot/cogs/codeblock/cog.py
@@ -8,7 +8,6 @@ from discord.ext.commands import Bot, Cog
from bot.cogs.token_remover import TokenRemover
from bot.constants import Categories, Channels, DEBUG_MODE
from bot.utils.messages import wait_for_deletion
-from . import parsing
from .instructions import get_instructions
log = logging.getLogger(__name__)
@@ -136,11 +135,14 @@ class CodeBlockCog(Cog, name="Code Block"):
return
# Parse the message to see if the code blocks have been fixed.
- code_blocks = parsing.find_code_blocks(payload.data.get("content"))
+ content = payload.data.get("content")
+ instructions = get_instructions(content)
+ bot_message = await self.get_sent_instructions(payload)
- # If the message is fixed, delete the bot message and the entry from the id dictionary.
- if not code_blocks:
+ if not instructions:
log.trace("User's incorrect code block has been fixed. Removing instructions message.")
- bot_message = await self.get_sent_instructions(payload)
await bot_message.delete()
del self.codeblock_message_ids[payload.message_id]
+ else:
+ log.trace("Message edited but still has invalid code blocks; editing the instructions.")
+ await bot_message.edit(content=instructions)