mirror of
https://github.com/myned/modufur.git
synced 2024-12-24 14:27:27 +00:00
Merge branch 'dev'
This commit is contained in:
commit
cc40de0904
6 changed files with 36 additions and 8 deletions
|
@ -37,7 +37,7 @@ class MsG:
|
|||
for tag in tag_request.get('wolf', []):
|
||||
tags.append(tag[0])
|
||||
|
||||
await ctx.send('✅ ``{}` **tags:**\n```\n{}```'.format(tag, formatter.tostring(tags)))
|
||||
await ctx.send('✅ `{}` **related tags:**\n```\n{}```'.format(tag, formatter.tostring(tags)))
|
||||
|
||||
@tags.error
|
||||
async def tags_error(self, ctx, error):
|
||||
|
|
|
@ -81,8 +81,10 @@ class Administration:
|
|||
for channel in channels:
|
||||
try:
|
||||
ref = await channel.get_message(reference)
|
||||
|
||||
except err.NotFound:
|
||||
continue
|
||||
|
||||
history = []
|
||||
try:
|
||||
pru_sent = await ctx.send('⌛️ **Pruning** <@{}>**\'s messages will take some time.**'.format(uid))
|
||||
|
@ -118,14 +120,18 @@ class Administration:
|
|||
for message in history:
|
||||
try:
|
||||
await message.delete()
|
||||
|
||||
except d.NotFound:
|
||||
pass
|
||||
|
||||
# print('Deleted {}/{} messages.'.format(history.index(message) + 1, len(history)))
|
||||
await del_sent.edit(content='🗑 **Deleted** `{}/{}` **messages.**'.format(history.index(message) + 1, len(history)))
|
||||
await asyncio.sleep(self.RATE_LIMIT)
|
||||
await del_sent.edit(content='🗑 `{}` **of** <@{}>**\'s messages deleted from** {}**.**'.format(len(history), uid, ctx.guild.name))
|
||||
|
||||
except exc.CheckFail:
|
||||
await ctx.send('❌ **Deletion aborted.**', delete_after=10)
|
||||
|
||||
except TimeoutError:
|
||||
await ctx.send('❌ **Deletion timed out.**', delete_after=10)
|
||||
|
||||
|
@ -152,11 +158,13 @@ class Administration:
|
|||
while not self.bot.is_closed():
|
||||
message = await self.bot.wait_for('message', check=check)
|
||||
await self.queue.put(message)
|
||||
|
||||
except exc.Abort:
|
||||
u.tasks['management']['auto_delete'].remove(channel.id)
|
||||
u.dump(u.tasks, 'cogs/tasks.pkl')
|
||||
print('Stopped looping {}'.format(channel.id))
|
||||
await channel.send('✅ **Stopped deleting messages in** {}**.**'.format(channel.mention), delete_after=5)
|
||||
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
@ -176,5 +184,19 @@ class Administration:
|
|||
await ctx.send('✅ **Auto-deleting all messages in this channel.**', delete_after=5)
|
||||
else:
|
||||
raise exc.Exists
|
||||
|
||||
except exc.Exists:
|
||||
await ctx.send('❌ **Already auto-deleting in this channel.** Type `stop` to stop.', delete_after=10)
|
||||
|
||||
@commands.command(name='deletecommands', aliases=['delcmds'])
|
||||
@commands.has_permissions(administrator=True)
|
||||
async def delete_commands(self, ctx):
|
||||
guild = ctx.guild
|
||||
|
||||
if guild.id not in u.settings['del_ctx']:
|
||||
u.settings['del_ctx'].append(guild.id)
|
||||
else:
|
||||
u.settings['del_ctx'].remove(guild.id)
|
||||
u.dump(u.settings, 'settings.pkl')
|
||||
|
||||
await ctx.send('✅ **Delete command invocations:** `{}`'.format(guild.id in u.settings['del_ctx']))
|
||||
|
|
|
@ -27,8 +27,8 @@ class Bot:
|
|||
@commands.is_owner()
|
||||
@checks.del_ctx()
|
||||
async def die(self, ctx):
|
||||
if isinstance(self.bot.get_channel(u.config['startup_channel']), d.TextChannel):
|
||||
await self.bot.get_channel(u.config['shutdown_channel']).send('**Shutting down...** 🌙')
|
||||
if isinstance(self.bot.get_channel(u.config['shutdown_channel']), d.TextChannel):
|
||||
await self.bot.get_channel(u.config['shutdown_channel']).send('**Shutting down. . .** 🌙')
|
||||
# loop = self.bot.loop.all_tasks()
|
||||
# for task in loop:
|
||||
# task.cancel()
|
||||
|
@ -43,8 +43,8 @@ class Bot:
|
|||
@checks.del_ctx()
|
||||
async def restart(self, ctx):
|
||||
print('\n| | | | | | | | | |\nR E S T A R T I N G\n| | | | | | | | | |\n')
|
||||
if isinstance(self.bot.get_channel(u.config['startup_channel']), d.TextChannel):
|
||||
await self.bot.get_channel(u.config['shutdown_channel']).send('**Restarting...** 💤')
|
||||
if isinstance(self.bot.get_channel(u.config['shutdown_channel']), d.TextChannel):
|
||||
await self.bot.get_channel(u.config['shutdown_channel']).send('**Restarting. . .** 💤')
|
||||
# u.notify('R E S T A R T I N G')
|
||||
# loop = self.bot.loop.all_tasks()
|
||||
# for task in loop:
|
||||
|
|
|
@ -58,7 +58,7 @@ def is_nsfw():
|
|||
|
||||
def del_ctx():
|
||||
async def predicate(ctx):
|
||||
if isinstance(ctx.message.channel, discord.TextChannel):
|
||||
if ctx.me.permissions_in(ctx.channel).manage_messages is True and isinstance(ctx.message.channel, discord.TextChannel) and ctx.guild.id in u.settings['del_ctx']:
|
||||
await ctx.message.delete()
|
||||
return True
|
||||
return commands.check(predicate)
|
||||
|
|
|
@ -9,6 +9,7 @@ import traceback as tb
|
|||
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
|
||||
|
@ -40,7 +41,9 @@ async def on_ready():
|
|||
|
||||
|
||||
@bot.event
|
||||
async def on_error(error):
|
||||
async def on_error(error, *args, **kwargs):
|
||||
if isinstance(bot.get_channel(u.config['shutdown_channel']), d.TextChannel):
|
||||
await bot.get_channel(u.config['shutdown_channel']).send('**__ERROR__** ⚠️ {}\n**Exiting. . .**'.format(error))
|
||||
u.close()
|
||||
await bot.logout()
|
||||
await bot.close()
|
||||
|
@ -51,7 +54,9 @@ async def on_error(error):
|
|||
|
||||
@bot.event
|
||||
async def on_command_error(ctx, error):
|
||||
if not isinstance(error, commands.errors.CommandNotFound):
|
||||
if isinstance(error, errext.CheckFailure):
|
||||
await ctx.send('❌ **Insufficient permissions.**', delete_after=10)
|
||||
elif not isinstance(error, errext.CommandNotFound):
|
||||
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)
|
||||
|
|
|
@ -50,6 +50,7 @@ def dump(obj, filename):
|
|||
pkl.dump(obj, outfile)
|
||||
|
||||
|
||||
settings = setdefault('settings.pkl', {'del_ctx': []})
|
||||
tasks = setdefault('cogs/tasks.pkl', {})
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue