aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/admin.py23
-rw-r--r--modules/execute.py11
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)