Modify eval to use traceback

This commit is contained in:
Zeva Rose 2021-06-27 19:40:17 -06:00
parent b164694c43
commit 2fbc720ccc

View file

@ -5,11 +5,12 @@ import re
import ulid
import base64
import subprocess
from inspect import getsource
import discord
import time
import sys
import os
import traceback
from inspect import getsource
from discord.ext import commands
from jarvis.utils import build_embed, convert_bytesize
from jarvis.utils.field import Field
@ -271,9 +272,6 @@ class DevCog(commands.Cog):
@commands.command(pass_context=True, aliases=["eval", "exec", "evaluate"])
@commands.is_owner()
async def _eval(self, ctx, *, code: str):
silent = "-s" in code
code = self.prepare(code.replace("-s", ""))
args = {
"discord": discord,
"sauce": getsource,
@ -288,11 +286,7 @@ class DevCog(commands.Cog):
exec(f"async def func():{code}", args)
a = time()
response = await eval("func()", args)
if (
silent
or (response is None)
or isinstance(response, discord.Message)
):
if response is None or isinstance(response, discord.Message):
del args, code
return
@ -300,11 +294,9 @@ class DevCog(commands.Cog):
f"```py\n{self.resolve_variable(response)}````{type(response).__name__} | {(time() - a) / 1000} ms`"
)
except Exception as e:
await ctx.send(
f"Error occurred:```\n{type(e).__name__}: {str(e)}```"
)
await ctx.send(f"Error occurred:```\n{traceback.format_exc()}```")
del args, code, silent
del args, code
def setup(bot):