aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-05-07 20:37:37 -0700
committerGravatar MarkKoz <[email protected]>2020-06-13 11:21:08 -0700
commitb160119bbdcde230da44279ce3698fb800f5743e (patch)
tree0d086e46ac4a4b725de6bd12f3cd95749469229f
parentCode block: join bad language instructions by spaces (diff)
Code block: don't return bad language instructions if nothing's wrong
-rw-r--r--bot/cogs/codeblock/instructions.py33
1 files changed, 19 insertions, 14 deletions
diff --git a/bot/cogs/codeblock/instructions.py b/bot/cogs/codeblock/instructions.py
index 3cc955a1a..0c97d2ad4 100644
--- a/bot/cogs/codeblock/instructions.py
+++ b/bot/cogs/codeblock/instructions.py
@@ -85,26 +85,31 @@ def _get_bad_lang_message(content: str) -> Optional[str]:
"""
Return instructions on fixing the Python language specifier for a code block.
- If `content` doesn't start with "python" or "py" as the language specifier, return None.
+ If `code_block` does not have a Python language specifier, return None.
+ If there's nothing wrong with the language specifier, return None.
"""
log.trace("Creating instructions for a poorly specified language.")
+
info = parsing.parse_bad_language(content)
+ if not info:
+ log.trace("Aborting bad language instructions: language specified isn't Python.")
+ return
- if info:
- lines = []
- language = info.language
+ lines = []
+ language = info.language
- if info.leading_spaces:
- log.trace("Language specifier was preceded by a space.")
- lines.append(f"Make sure there are no spaces between the back ticks and `{language}`.")
+ if info.leading_spaces:
+ log.trace("Language specifier was preceded by a space.")
+ lines.append(f"Make sure there are no spaces between the back ticks and `{language}`.")
- if not info.terminal_newline:
- log.trace("Language specifier was not followed by a newline.")
- lines.append(
- f"Make sure you put your code on a new line following `{language}`. "
- f"There must not be any spaces after `{language}`."
- )
+ if not info.terminal_newline:
+ log.trace("Language specifier was not followed by a newline.")
+ lines.append(
+ f"Make sure you put your code on a new line following `{language}`. "
+ f"There must not be any spaces after `{language}`."
+ )
+ if lines:
lines = " ".join(lines)
example_blocks = _get_example(language)
@@ -114,7 +119,7 @@ def _get_bad_lang_message(content: str) -> Optional[str]:
f"\n\n**Here is an example of how it should look:**\n{example_blocks}"
)
else:
- log.trace("Aborting bad language instructions: language specified isn't Python.")
+ log.trace("Nothing wrong with the language specifier; no instructions to return.")
def _get_no_lang_message(content: str) -> Optional[str]: