diff options
author | NoirPi <34034616+NoirPi@users.noreply.github.com> | 2019-04-27 13:49:23 +0200 |
---|---|---|
committer | NoirPi <34034616+NoirPi@users.noreply.github.com> | 2019-04-27 14:21:52 +0200 |
commit | f0939b99d71088c95e2b69616e1fee96b44ce167 (patch) | |
tree | cb3a4b1192f8cd13d227f678141c3a84828b5bb7 | |
parent | 55c6967967c91a3259e9af67ba61dcfdaaff5f9e (diff) | |
download | evalbot-f0939b99d71088c95e2b69616e1fee96b44ce167.tar.gz evalbot-f0939b99d71088c95e2b69616e1fee96b44ce167.tar.bz2 evalbot-f0939b99d71088c95e2b69616e1fee96b44ce167.zip |
Updated Bot to latest github.com Version of discord.py
Version Number: 1.1.0a1886+ga7f3300
Added guild variable
Added print if reload throws Exceptions
Signed-off-by: NoirPi <34034616+NoirPi@users.noreply.github.com>
-rw-r--r-- | modules/admin.py | 23 | ||||
-rw-r--r-- | modules/execute.py | 11 |
2 files changed, 21 insertions, 13 deletions
diff --git a/modules/admin.py b/modules/admin.py index e1d2921..c07b594 100644 --- a/modules/admin.py +++ b/modules/admin.py @@ -1,15 +1,16 @@ import re -from typing import List, Dict, Pattern +from typing import Dict, List, Pattern import discord -from discord import Embed, Color +from discord import Color, Embed from discord.ext import commands -from discord.ext.commands import Context as CommandContext, Bot, is_owner, command +from discord.ext.commands import Bot, command, Context as CommandContext, is_owner from util import load_all_modules REPLACEMENTS: Dict[Pattern, str] = { - re.compile(r'<@!?(?P<id>[0-9]+)>'): '(guild.get_member({id}) if guild is not None else client.get_user({id}))', + re.compile(r'<@!?(?P<id>[0-9]+)>'): '(guild.get_member({id}) if guild is not None ' + 'else client.get_user({id}))', re.compile(r'<#(?P<id>[0-9]+)>'): '(discord.utils.get(all_channels, id={id}))', re.compile(r'<@&(?P<id>[0-9]+)>'): '(discord.utils.get(all_roles, id={id}))', # Maybe later emoji support @@ -35,7 +36,8 @@ async def handle_eval(message: discord.Message, client: discord.Client, to_eval: 'all_roles': all_roles, 'client': client, 'discord': discord, - 'print': (lambda *text: client.loop.create_task(channel.send(' '.join(text)))) + 'print': (lambda *text: client.loop.create_task(channel.send(' '.join(text)))), + 'guild': channel.guild if hasattr(channel, 'guild') else None, } if channel.guild is not None: variables['guild'] = channel.guild @@ -53,14 +55,16 @@ async def handle_eval(message: discord.Message, client: discord.Client, to_eval: exec(code, _globals, _locals) except Exception as e: await message.channel.send( - embed=discord.Embed(color=discord.Color.red(), description="Compiler Error: `%s`" % (str(e)))) + embed=discord.Embed(color=discord.Color.red(), + description="Compiler Error: `%s`" % (str(e)))) return result = {**_globals, **_locals} try: result = await result["code"](**variables) except Exception as e: await message.channel.send( - embed=discord.Embed(color=discord.Color.red(), description="Runtime Error: `%s`" % (str(e)))) + embed=discord.Embed(color=discord.Color.red(), + description="Runtime Error: `%s`" % (str(e)))) return return await channel.send( @@ -69,7 +73,7 @@ async def handle_eval(message: discord.Message, client: discord.Client, to_eval: description="📥 Evaluation success: ```py\n%r\n```" % result)) -class AdminCog(object): +class AdminCog(commands.Cog, object): def __init__(self, bot: commands.Bot): self.bot: commands.Bot = bot @@ -104,7 +108,8 @@ class AdminCog(object): for extension in extensions: try: self.bot.load_extension(extension) - except: + except Exception as e: + print(e) await ctx.send( embed=Embed( title=f"Failed to load module `{extension}`", diff --git a/modules/execute.py b/modules/execute.py index 21e8fa3..024c1ec 100644 --- a/modules/execute.py +++ b/modules/execute.py @@ -3,13 +3,15 @@ from collections import defaultdict from datetime import datetime, timedelta from typing import Pattern -from discord import Embed, Message, Guild, TextChannel, Member +from discord import Embed, Guild, Member, Message, TextChannel +from discord.ext import commands from discord.ext.commands import Bot from compile_api import execute CODE_BLOCK_REGEX: Pattern = re.compile("```(?P<lang>.*)\n(?P<code>[\\s\\S]*?)```") -INPUT_BLOCK_REGEX: Pattern = re.compile("input[: \t\n]*```(?P<lang>.*)?\n(?P<text>[\\s\\S]*?)```", re.IGNORECASE) +INPUT_BLOCK_REGEX: Pattern = \ + re.compile("input[: \t\n]*```(?P<lang>.*)?\n(?P<text>[\\s\\S]*?)```", re.IGNORECASE) PYTHON_3 = 24 NODEJS = 17 @@ -56,12 +58,13 @@ languages = { } -class ExecuteCog(object): +class ExecuteCog(commands.Cog, object): def __init__(self, bot: Bot): self.bot: Bot = bot self.last_messaged = defaultdict(lambda: datetime.fromtimestamp(0)) # noinspection PyMethodMayBeStatic + @commands.Cog.listener() async def on_message(self, message: Message): if message.guild is None: return @@ -89,7 +92,7 @@ class ExecuteCog(object): embed=Embed( description=f"You are not allowed to eval code again. Check again in " f"{(timedelta(seconds=30)-delta).seconds}secs")) - if not author.guild_permissions.manage_messages and not author.id == 310702108997320705: + if not author.guild_permissions.manage_messages and not author.id == 280766063472541697: self.last_messaged[author.id] = datetime.now() language = languages[lang] print(language) |