diff options
| author | 2018-06-27 13:57:34 +0100 | |
|---|---|---|
| committer | 2018-06-27 13:57:34 +0100 | |
| commit | b20b2e0fcf8a49b3fb5a50120a15b90f500e0d3e (patch) | |
| tree | f9ae2b47e9fe637b1be62808375728bce35feb29 | |
| parent | Beta snekbox eval (diff) | |
[Snekbox] Eval for the masses. Staff-only eval is now `internal.eval`
| -rw-r--r-- | bot/cogs/eval.py | 2 | ||||
| -rw-r--r-- | bot/cogs/snekbox.py | 19 |
2 files changed, 16 insertions, 5 deletions
diff --git a/bot/cogs/eval.py b/bot/cogs/eval.py index b6e5e0ec2..ddd5c558a 100644 --- a/bot/cogs/eval.py +++ b/bot/cogs/eval.py @@ -173,7 +173,7 @@ async def func(): # (None,) -> Any out, embed = self._format(code, res) await ctx.send(f"```py\n{out}```", embed=embed) - @command(name="eval()", aliases=["eval"]) + @command(name="internal.eval()", aliases=["internal.eval"]) @with_role(Roles.admin, Roles.owner) async def eval(self, ctx, *, code: str): """ Run eval in a REPL-like format. """ diff --git a/bot/cogs/snekbox.py b/bot/cogs/snekbox.py index 55fbe9a4e..bd0f20e80 100644 --- a/bot/cogs/snekbox.py +++ b/bot/cogs/snekbox.py @@ -2,6 +2,7 @@ import datetime import logging from aio_pika import Message +from discord import Embed, Colour from discord.ext.commands import Bot, Context, command from bot.cogs.rmq import RMQ @@ -32,9 +33,16 @@ class Snekbox: def rmq(self) -> RMQ: return self.bot.get_cog("RMQ") - @command(name="snekbox.eval()", aliases=["snekbox.eval"]) - @with_role(Roles.admin, Roles.owner, Roles.devops, Roles.moderator) + @command(name="snekbox.eval()", aliases=["snekbox.eval", "eval()", "eval"]) async def do_eval(self, ctx: Context, code: str): + """ + Run some code. get the result back. We've done our best to make this safe, but do let us know if you + manage to find an issue with it! + + Remember, your code must be within some kind of string. Why not surround your code with quotes or put it in + a docstring? + """ + if ctx.author.id in self.jobs: await ctx.send(f"{ctx.author.mention} You've already got a job running - please wait for it to finish!") return @@ -49,9 +57,12 @@ class Snekbox: ) async def callback(message: Message): + embed = Embed(description=f"```{message.body.decode}```", title="Code evaluation") + embed.colour = Colour.blurple() + await ctx.send( - f"{ctx.author.mention}\n\n" - f"```{message.body.decode()}```" + f"{ctx.author.mention} Your eval job has completed.", + embed=embed ) del self.jobs[ctx.author.id] |