diff options
Diffstat (limited to 'drutils/eval.py')
-rw-r--r-- | drutils/eval.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drutils/eval.py b/drutils/eval.py index fd105b5..645d069 100644 --- a/drutils/eval.py +++ b/drutils/eval.py @@ -13,7 +13,8 @@ REPLACEMENTS = { } -async def handle_eval(message: discord.Message, client: discord.Client, to_eval: str, **kwargs): +async def handle_eval(message: discord.Message, client: discord.Client, to_eval: str, + strip_codeblock: bool = False, **kwargs): channel = message.channel author = message.author @@ -36,7 +37,13 @@ async def handle_eval(message: discord.Message, client: discord.Client, to_eval: 'guild': channel.guild if hasattr(channel, 'guild') else None, } variables.update(kwargs) + lines = to_eval.strip().split('\n') + if strip_codeblock: + if lines[0].startswith("```"): + lines = lines[1:] + lines[-1] = ''.join(lines[-1].rsplit('```', 1)) + block = '\n'.join(' ' + line for line in lines) code = ("async def code({variables}):\n" "{block}").format(variables=', '.join(variables.keys()), block=block) |