aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-05-06 13:53:11 -0700
committerGravatar MarkKoz <[email protected]>2020-06-13 11:21:05 -0700
commit3fe6c4aac91b691de9b60c9fd89d23539a18b9a4 (patch)
tree2e2e388d7ded256a759825dd626648fb9f21c326
parentCode block: use new formatting functions in on_message (diff)
Code block: use find_code_blocks to check if an edited msg was fixed
* Remove has_bad_ticks - it's obsolete
-rw-r--r--bot/cogs/codeblock/cog.py17
-rw-r--r--bot/cogs/codeblock/parsing.py7
2 files changed, 8 insertions, 16 deletions
diff --git a/bot/cogs/codeblock/cog.py b/bot/cogs/codeblock/cog.py
index 959fc138e..19ddb8c73 100644
--- a/bot/cogs/codeblock/cog.py
+++ b/bot/cogs/codeblock/cog.py
@@ -125,7 +125,7 @@ class CodeBlockCog(Cog, name="Code Block"):
@Cog.listener()
async def on_raw_message_edit(self, payload: RawMessageUpdateEvent) -> None:
- """Check to see if an edited message (previously called out) still contains poorly formatted code."""
+ """Delete the instructions message if an edited message had its code blocks fixed."""
if (
# Checks to see if the message was called out by the bot
payload.message_id not in self.codeblock_message_ids
@@ -136,16 +136,15 @@ class CodeBlockCog(Cog, name="Code Block"):
):
return
- # Retrieve channel and message objects for use later
- channel = self.bot.get_channel(int(payload.data.get("channel_id")))
- user_message = await channel.fetch_message(payload.message_id)
+ # Parse the message to see if the code blocks have been fixed.
+ code_blocks = parsing.find_code_blocks(payload.data.get("content"))
- # Checks to see if the user has corrected their codeblock. If it's fixed, has_fixed_codeblock will be None
- has_fixed_codeblock = self.codeblock_stripping(payload.data.get("content"), parsing.has_bad_ticks(user_message))
+ # If the message is fixed, delete the bot message and the entry from the id dictionary.
+ if not code_blocks:
+ log.trace("User's incorrect code block has been fixed. Removing bot formatting message.")
- # If the message is fixed, delete the bot message and the entry from the id dictionary
- if has_fixed_codeblock is None:
+ channel = self.bot.get_channel(int(payload.data.get("channel_id")))
bot_message = await channel.fetch_message(self.codeblock_message_ids[payload.message_id])
+
await bot_message.delete()
del self.codeblock_message_ids[payload.message_id]
- log.trace("User's incorrect code block has been fixed. Removing bot formatting message.")
diff --git a/bot/cogs/codeblock/parsing.py b/bot/cogs/codeblock/parsing.py
index bb71aaaaf..88a5c7b7a 100644
--- a/bot/cogs/codeblock/parsing.py
+++ b/bot/cogs/codeblock/parsing.py
@@ -3,8 +3,6 @@ import logging
import re
from typing import NamedTuple, Sequence
-import discord
-
log = logging.getLogger(__name__)
BACKTICK = "`"
@@ -63,11 +61,6 @@ def find_code_blocks(message: str) -> Sequence[CodeBlock]:
code_blocks.append(code_block)
-def has_bad_ticks(message: discord.Message) -> bool:
- """Return True if `message` starts with 3 characters which look like but aren't '`'."""
- return message.content[:3] in TICKS
-
-
def is_python_code(content: str) -> bool:
"""Return True if `content` is valid Python consisting of more than just expressions."""
try: