aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-06-27 13:57:34 +0100
committerGravatar Gareth Coles <[email protected]>2018-06-27 13:57:34 +0100
commitb20b2e0fcf8a49b3fb5a50120a15b90f500e0d3e (patch)
treef9ae2b47e9fe637b1be62808375728bce35feb29
parentBeta snekbox eval (diff)
[Snekbox] Eval for the masses. Staff-only eval is now `internal.eval`
-rw-r--r--bot/cogs/eval.py2
-rw-r--r--bot/cogs/snekbox.py19
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]