Rename project to Administrator and fix some error handler
This commit is contained in:
parent
3c6e394ccc
commit
b6350cf0aa
14 changed files with 55 additions and 87 deletions
|
@ -1,2 +1,2 @@
|
||||||
# BotBDE
|
# Administrator
|
||||||
A discord bot for my BDE server
|
A discord bot for server administration
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from bot_bde.config import config
|
from administrator.config import config
|
||||||
import db
|
import db
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from bot_bde import config
|
from administrator import config
|
||||||
|
|
||||||
|
|
||||||
class NotOwner(commands.CheckFailure):
|
class NotOwner(commands.CheckFailure):
|
|
@ -1,4 +1,4 @@
|
||||||
from bot_bde.logger import logger
|
from administrator.logger import logger
|
||||||
from os.path import isfile
|
from os.path import isfile
|
||||||
from json import load
|
from json import load
|
||||||
|
|
|
@ -12,7 +12,7 @@ logging.basicConfig(
|
||||||
format=log_format,
|
format=log_format,
|
||||||
level=logging.INFO
|
level=logging.INFO
|
||||||
)
|
)
|
||||||
logger = logging.getLogger("BotBDE")
|
logger = logging.getLogger("Administrator")
|
||||||
handler = handlers.TimedRotatingFileHandler("../logs/current.log", when="d", interval=1)
|
handler = handlers.TimedRotatingFileHandler("../logs/current.log", when="d", interval=1)
|
||||||
handler.suffix = "%Y-%m-%d"
|
handler.suffix = "%Y-%m-%d"
|
||||||
handler.style = log_format
|
handler.style = log_format
|
|
@ -1,4 +1,4 @@
|
||||||
from bot_bde.config import config
|
from administrator.config import config
|
||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
from bot_bde import bot
|
from administrator import bot
|
||||||
|
|
||||||
bot.load_extension("extensions.help")
|
bot.load_extension("extensions.help")
|
||||||
bot.load_extension("extensions.speak")
|
|
||||||
bot.load_extension("extensions.extension")
|
bot.load_extension("extensions.extension")
|
||||||
bot.load_extension("extensions.purge")
|
bot.load_extension("extensions.purge")
|
||||||
bot.load_extension("extensions.poll")
|
bot.load_extension("extensions.poll")
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from discord.ext.commands.errors import CommandNotFound
|
|
||||||
from discord import Embed
|
from discord import Embed
|
||||||
from bot_bde.check import is_owner, NotOwner
|
from administrator.check import is_owner
|
||||||
from bot_bde.logger import logger
|
from administrator.logger import logger
|
||||||
|
|
||||||
|
|
||||||
extension_name = "extension"
|
extension_name = "extension"
|
||||||
|
@ -53,18 +52,6 @@ class Extension(commands.Cog):
|
||||||
else:
|
else:
|
||||||
await ctx.message.add_reaction("\U0001f44d")
|
await ctx.message.add_reaction("\U0001f44d")
|
||||||
|
|
||||||
@commands.Cog.listener()
|
|
||||||
async def on_command_error(self, ctx: commands.Context, error):
|
|
||||||
if ctx.invoked_with == extension_name or \
|
|
||||||
(ctx.command.root_parent is not None and ctx.command.root_parent.name == extension_name):
|
|
||||||
if isinstance(error, NotOwner):
|
|
||||||
await ctx.message.add_reaction("\u274C")
|
|
||||||
elif isinstance(error, CommandNotFound):
|
|
||||||
await ctx.message.add_reaction("\u2753")
|
|
||||||
else:
|
|
||||||
await ctx.send("An error occurred !")
|
|
||||||
raise error
|
|
||||||
|
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
logger.info(f"Loading...")
|
logger.info(f"Loading...")
|
||||||
|
|
|
@ -1,21 +1,42 @@
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from bot_bde.logger import logger
|
from discord.ext.commands import CommandNotFound, MissingRequiredArgument, BadArgument
|
||||||
|
|
||||||
|
from administrator.logger import logger
|
||||||
|
from administrator.check import NotOwner
|
||||||
|
|
||||||
|
|
||||||
extension_name = "help"
|
extension_name = "help"
|
||||||
logger = logger.getChild(extension_name)
|
logger = logger.getChild(extension_name)
|
||||||
|
|
||||||
|
|
||||||
@commands.command("help")
|
class Help(commands.Cog):
|
||||||
async def help_cmd(ctx):
|
def __init__(self, bot: commands.Bot):
|
||||||
await ctx.send("Help !")
|
self.bot = bot
|
||||||
|
self.purges = {}
|
||||||
|
|
||||||
|
@commands.command("help", pass_context=True)
|
||||||
|
async def help(self, ctx: commands.Context):
|
||||||
|
await ctx.send("HALP !")
|
||||||
|
|
||||||
|
@commands.Cog.listener()
|
||||||
|
async def on_command_error(self, ctx: commands.Context, error):
|
||||||
|
if isinstance(error, CommandNotFound):
|
||||||
|
await ctx.message.add_reaction("\u2753")
|
||||||
|
elif isinstance(error, MissingRequiredArgument) or isinstance(error, BadArgument):
|
||||||
|
await ctx.message.add_reaction("\u274C")
|
||||||
|
elif isinstance(error, NotOwner):
|
||||||
|
await ctx.message.add_reaction("\u274C")
|
||||||
|
else:
|
||||||
|
await ctx.send("An error occurred !")
|
||||||
|
raise error
|
||||||
|
await ctx.message.delete(delay=30)
|
||||||
|
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
logger.info(f"Loading...")
|
logger.info(f"Loading...")
|
||||||
try:
|
try:
|
||||||
bot.help_command = None
|
bot.help_command = None
|
||||||
bot.add_command(help_cmd)
|
bot.add_cog(Help(bot))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error loading: {e}")
|
logger.error(f"Error loading: {e}")
|
||||||
else:
|
else:
|
||||||
|
@ -25,7 +46,7 @@ def setup(bot):
|
||||||
def teardown(bot):
|
def teardown(bot):
|
||||||
logger.info(f"Unloading...")
|
logger.info(f"Unloading...")
|
||||||
try:
|
try:
|
||||||
bot.remove_command("help")
|
bot.remove_cog("Help")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error unloading: {e}")
|
logger.error(f"Error unloading: {e}")
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -2,9 +2,8 @@ from datetime import datetime
|
||||||
|
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from discord import Member, Embed, Reaction
|
from discord import Member, Embed, Reaction
|
||||||
from discord.ext.commands import CommandNotFound, MissingRequiredArgument
|
|
||||||
|
|
||||||
from bot_bde.logger import logger
|
from administrator.logger import logger
|
||||||
|
|
||||||
|
|
||||||
extension_name = "poll"
|
extension_name = "poll"
|
||||||
|
@ -90,20 +89,6 @@ class Poll(commands.Cog):
|
||||||
await message.edit(embed=embed)
|
await message.edit(embed=embed)
|
||||||
del self.polls[id]
|
del self.polls[id]
|
||||||
|
|
||||||
@commands.Cog.listener()
|
|
||||||
async def on_command_error(self, ctx: commands.Context, error):
|
|
||||||
if ctx.invoked_with == extension_name or \
|
|
||||||
(ctx.command.root_parent is not None and ctx.command.root_parent.name == extension_name):
|
|
||||||
if isinstance(error, CommandNotFound):
|
|
||||||
await ctx.message.add_reaction("\u2753")
|
|
||||||
await ctx.message.delete(delay=30)
|
|
||||||
if isinstance(error, MissingRequiredArgument):
|
|
||||||
await ctx.message.add_reaction("\u274C")
|
|
||||||
await ctx.message.delete(delay=30)
|
|
||||||
else:
|
|
||||||
await ctx.send("An error occurred !")
|
|
||||||
raise error
|
|
||||||
|
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
logger.info(f"Loading...")
|
logger.info(f"Loading...")
|
||||||
|
|
|
@ -2,9 +2,8 @@ from asyncio import sleep
|
||||||
|
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from discord import Embed, RawReactionActionEvent
|
from discord import Embed, RawReactionActionEvent
|
||||||
from discord.ext.commands import CommandNotFound
|
|
||||||
|
|
||||||
from bot_bde.logger import logger
|
from administrator.logger import logger
|
||||||
|
|
||||||
|
|
||||||
extension_name = "purge"
|
extension_name = "purge"
|
||||||
|
@ -56,16 +55,6 @@ class Purge(commands.Cog):
|
||||||
await message.delete()
|
await message.delete()
|
||||||
del self.purges[user.id]
|
del self.purges[user.id]
|
||||||
|
|
||||||
@commands.Cog.listener()
|
|
||||||
async def on_command_error(self, ctx: commands.Context, error):
|
|
||||||
if ctx.invoked_with == extension_name or \
|
|
||||||
(ctx.command.root_parent is not None and ctx.command.root_parent.name == extension_name):
|
|
||||||
if isinstance(error, CommandNotFound):
|
|
||||||
await ctx.message.add_reaction("\u2753")
|
|
||||||
else:
|
|
||||||
await ctx.send("An error occurred !")
|
|
||||||
raise error
|
|
||||||
|
|
||||||
|
|
||||||
def setup(bot):
|
def setup(bot):
|
||||||
logger.info(f"Loading...")
|
logger.info(f"Loading...")
|
||||||
|
@ -80,7 +69,7 @@ def setup(bot):
|
||||||
def teardown(bot):
|
def teardown(bot):
|
||||||
logger.info(f"Unloading...")
|
logger.info(f"Unloading...")
|
||||||
try:
|
try:
|
||||||
bot.remove_cog("Speak")
|
bot.remove_cog("Purge")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error unloading: {e}")
|
logger.error(f"Error unloading: {e}")
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -3,11 +3,11 @@ from datetime import datetime, timedelta
|
||||||
|
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from discord import Embed
|
from discord import Embed
|
||||||
from discord.ext.commands import CommandNotFound, BadArgument, MissingRequiredArgument
|
from discord.ext.commands import CommandNotFound, BadArgument
|
||||||
from discord.ext import tasks
|
from discord.ext import tasks
|
||||||
|
|
||||||
from bot_bde.logger import logger
|
from administrator.logger import logger
|
||||||
from bot_bde import db
|
from administrator import db
|
||||||
|
|
||||||
|
|
||||||
extension_name = "reminders"
|
extension_name = "reminders"
|
||||||
|
@ -37,10 +37,10 @@ class Reminders(commands.Cog):
|
||||||
@reminder.group("help", pass_context=True)
|
@reminder.group("help", pass_context=True)
|
||||||
async def reminder_help(self, ctx: commands.Context):
|
async def reminder_help(self, ctx: commands.Context):
|
||||||
embed = Embed(title="Reminder help")
|
embed = Embed(title="Reminder help")
|
||||||
embed.add_field(name="speak add <message> <time>", value="Add a reminder to your reminders list\n"
|
embed.add_field(name="reminder add <message> <time>", value="Add a reminder to your reminders list\n"
|
||||||
"Time: ?D?H?M?S", inline=False)
|
"Time: ?D?H?M?S", inline=False)
|
||||||
embed.add_field(name="speak list", value="Show your tasks list", inline=False)
|
embed.add_field(name="reminder list", value="Show your tasks list", inline=False)
|
||||||
embed.add_field(name="speak remove [N°]", value="Show your tasks list with if no id given\n"
|
embed.add_field(name="reminder remove [N°]", value="Show your tasks list with if no id given\n"
|
||||||
"Remove the task withe the matching id", inline=False)
|
"Remove the task withe the matching id", inline=False)
|
||||||
await ctx.send(embed=embed)
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ class Reminders(commands.Cog):
|
||||||
embed = Embed(title="Tasks list")
|
embed = Embed(title="Tasks list")
|
||||||
s = db.Session()
|
s = db.Session()
|
||||||
for t in s.query(db.Task).filter(db.Task.user == ctx.author.id).all():
|
for t in s.query(db.Task).filter(db.Task.user == ctx.author.id).all():
|
||||||
embed.add_field(name=f"N°{t.id} | {t.date}", value=f"{t.message}", inline=False)
|
embed.add_field(name=f"N°{t.id} | {t.date.strftime('%d/%m/%Y %H:%M')}", value=f"{t.message}", inline=False)
|
||||||
s.close()
|
s.close()
|
||||||
await ctx.send(embed=embed)
|
await ctx.send(embed=embed)
|
||||||
|
|
||||||
|
@ -99,22 +99,9 @@ class Reminders(commands.Cog):
|
||||||
embed = Embed(title="You have a reminder !")
|
embed = Embed(title="You have a reminder !")
|
||||||
user = self.bot.get_user(task.user)
|
user = self.bot.get_user(task.user)
|
||||||
embed.set_author(name=f"{user.name}#{user.discriminator}", icon_url=user.avatar_url)
|
embed.set_author(name=f"{user.name}#{user.discriminator}", icon_url=user.avatar_url)
|
||||||
embed.add_field(name=str(task.creation_date), value=task.message)
|
embed.add_field(name=str(task.creation_date.strftime('%d/%m/%Y %H:%M')), value=task.message)
|
||||||
await (await self.bot.get_channel(task.channel).send(f"{user.mention}", embed=embed)).edit(content="")
|
await (await self.bot.get_channel(task.channel).send(f"{user.mention}", embed=embed)).edit(content="")
|
||||||
|
|
||||||
@commands.Cog.listener()
|
|
||||||
async def on_command_error(self, ctx: commands.Context, error):
|
|
||||||
if ctx.invoked_with == "reminder" or \
|
|
||||||
(ctx.command.root_parent and ctx.command.root_parent.name == "reminder"):
|
|
||||||
if isinstance(error, CommandNotFound)\
|
|
||||||
or isinstance(error, BadArgument)\
|
|
||||||
or isinstance(error, MissingRequiredArgument):
|
|
||||||
await ctx.message.add_reaction("\u2753")
|
|
||||||
await ctx.message.delete(delay=30)
|
|
||||||
else:
|
|
||||||
await ctx.send("An error occurred !")
|
|
||||||
raise error
|
|
||||||
|
|
||||||
def cog_unload(self):
|
def cog_unload(self):
|
||||||
self.reminders_loop.stop()
|
self.reminders_loop.stop()
|
||||||
|
|
||||||
|
|
2
main.py
2
main.py
|
@ -1 +1 @@
|
||||||
import bot_bde
|
import administrator
|
||||||
|
|
|
@ -3,9 +3,9 @@ async-timeout==3.0.1
|
||||||
attrs==19.3.0
|
attrs==19.3.0
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
discord==1.0.1
|
discord==1.0.1
|
||||||
discord.py==1.3.3
|
discord.py==1.3.4
|
||||||
idna==2.9
|
idna==2.10
|
||||||
multidict==4.7.5
|
multidict==4.7.6
|
||||||
|
SQLAlchemy==1.3.18
|
||||||
websockets==8.1
|
websockets==8.1
|
||||||
yarl==1.4.2
|
yarl==1.4.2
|
||||||
SQLAlchemy~=1.3.17
|
|
||||||
|
|
Reference in a new issue