mirror of
https://github.com/myned/modufur.git
synced 2024-11-02 05:02:39 +00:00
111 lines
3.4 KiB
Python
111 lines
3.4 KiB
Python
import asyncio
|
|
import datetime as dt
|
|
import json
|
|
import logging
|
|
import subprocess
|
|
import sys
|
|
import traceback as tb
|
|
from contextlib import suppress
|
|
|
|
import discord as d
|
|
from discord import utils
|
|
from discord.ext import commands
|
|
from discord.ext.commands import errors as errext
|
|
|
|
from misc import exceptions as exc
|
|
from misc import checks
|
|
from utils import utils as u
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
bot = commands.Bot(command_prefix=u.config['prefix'], description='Experimental booru bot')
|
|
|
|
|
|
# Send and print ready message to #testing and console after logon
|
|
@bot.event
|
|
async def on_ready():
|
|
from cogs import booru, info, management, owner, tools
|
|
|
|
bot.add_cog(tools.Utils(bot))
|
|
bot.add_cog(owner.Bot(bot))
|
|
bot.add_cog(owner.Tools(bot))
|
|
bot.add_cog(management.Administration(bot))
|
|
bot.add_cog(info.Info(bot))
|
|
bot.add_cog(booru.MsG(bot))
|
|
|
|
# bot.loop.create_task(u.clear(booru.temp_urls, 30*60))
|
|
|
|
if u.config['playing'] is not 'None':
|
|
await bot.change_presence(game=d.Game(name=u.config['playing']))
|
|
else:
|
|
await bot.change_presence(game=None)
|
|
|
|
print('\n\\ \\ \\ \\ \\ \\ \\ \\ \\\nC O N N E C T E D : {}\n/ / / / / / / / /\n'.format(bot.user.name))
|
|
await bot.get_channel(u.config['info_channel']).send('**Started** ☀️ .')
|
|
# u.notify('C O N N E C T E D')
|
|
if u.temp:
|
|
channel = bot.get_channel(u.temp['restart_ch'])
|
|
message = await channel.get_message(u.temp['restart_msg'])
|
|
await message.add_reaction('✅')
|
|
u.temp.clear()
|
|
|
|
|
|
@bot.event
|
|
async def on_error(error, *args, **kwargs):
|
|
print('\n! ! ! ! !\nE R R O R : {}\n! ! ! ! !\n'.format(error), file=sys.stderr)
|
|
tb.print_exc()
|
|
await bot.get_user(u.config['owner_id']).send('**ERROR** ⚠️ `{}`'.format(error))
|
|
await bot.get_channel(u.config['info_channel']).send('**ERROR** ⚠️ `{}`'.format(error))
|
|
# u.notify('E R R O R')
|
|
await bot.logout()
|
|
u.close(bot.loop)
|
|
|
|
|
|
@bot.event
|
|
async def on_command_error(ctx, error):
|
|
if isinstance(error, errext.CheckFailure):
|
|
await ctx.send('⛔️ **Insufficient permissions.**', delete_after=10)
|
|
await ctx.message.add_reaction('⛔️')
|
|
elif isinstance(error, errext.CommandNotFound):
|
|
print('INVALID COMMAND : {}'.format(error), file=sys.stderr)
|
|
else:
|
|
print('\n! ! ! ! ! ! ! ! ! ! ! !\nC O M M A N D E R R O R : {}\n! ! ! ! ! ! ! ! ! ! ! !\n'.format(
|
|
error), file=sys.stderr)
|
|
tb.print_exception(type(error), error, error.__traceback__, file=sys.stderr)
|
|
await bot.get_user(u.config['owner_id']).send('**COMMAND ERROR** ⚠️ `{}`'.format(error))
|
|
await bot.get_channel(u.config['info_channel']).send('**COMMAND ERROR** ⚠️ `{}`'.format(error))
|
|
await exc.send_error(ctx, error)
|
|
# u.notify('C O M M A N D E R R O R')
|
|
|
|
|
|
async def on_reaction_add(r, u):
|
|
pass
|
|
|
|
|
|
async def on_reaction_remove(r, u):
|
|
pass
|
|
|
|
|
|
async def reaction_add(r, u):
|
|
bot.add_listener(on_reaction_add)
|
|
print('Reacted')
|
|
bot.remove_listener(on_reaction_remove)
|
|
|
|
|
|
async def reaction_remove(r, u):
|
|
bot.add_listener(on_reaction_remove)
|
|
print('Removed')
|
|
bot.remove_listener(on_reaction_remove)
|
|
|
|
|
|
@bot.command(name=',test', hidden=True)
|
|
@commands.is_owner()
|
|
@checks.del_ctx()
|
|
async def test(ctx):
|
|
test = await ctx.send('Test')
|
|
raise Exception
|
|
# await test.add_reaction('✅')
|
|
# bot.add_listener(on_reaction_add)
|
|
# bot.add_listener(on_reaction_remove)
|
|
|
|
bot.run(u.config['token'])
|