aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorRoman Gräf <roman.graef@gmail.com>2019-04-28 14:21:29 +0200
committerGitHub <noreply@github.com>2019-04-28 14:21:29 +0200
commitb1cb6d2bd26776319699ff0212887f0f1d794399 (patch)
treed47b8ed92a76ce2e2b851566e018b60822ab952e /modules
parent55c6967967c91a3259e9af67ba61dcfdaaff5f9e (diff)
parent044142eb95301b70bc1fb2dab158b952f2badb09 (diff)
downloadevalbot-b1cb6d2bd26776319699ff0212887f0f1d794399.tar.gz
evalbot-b1cb6d2bd26776319699ff0212887f0f1d794399.tar.bz2
evalbot-b1cb6d2bd26776319699ff0212887f0f1d794399.zip
Merge pull request #1 from NoirPi/masterHEADmaster
Updated Bot to latest github.com Version of discord.py
Diffstat (limited to 'modules')
-rw-r--r--modules/admin.py23
-rw-r--r--modules/execute.py9
2 files changed, 20 insertions, 12 deletions
diff --git a/modules/admin.py b/modules/admin.py
index e1d2921..ee67aa7 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):
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..bdc4d3f 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):
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