1
0
Fork 0
mirror of https://github.com/myned/modufur.git synced 2024-12-23 22:27:27 +00:00

Added settings.pkl for del_ctx checks

This commit is contained in:
Myned 2017-10-14 23:40:56 -04:00
parent 9a1d225b9b
commit 3c55f9bb05
3 changed files with 24 additions and 1 deletions

View file

@ -81,8 +81,10 @@ class Administration:
for channel in channels: for channel in channels:
try: try:
ref = await channel.get_message(reference) ref = await channel.get_message(reference)
except err.NotFound: except err.NotFound:
continue continue
history = [] history = []
try: try:
pru_sent = await ctx.send('⌛️ **Pruning** <@{}>**\'s messages will take some time.**'.format(uid)) pru_sent = await ctx.send('⌛️ **Pruning** <@{}>**\'s messages will take some time.**'.format(uid))
@ -118,14 +120,18 @@ class Administration:
for message in history: for message in history:
try: try:
await message.delete() await message.delete()
except d.NotFound: except d.NotFound:
pass pass
# print('Deleted {}/{} messages.'.format(history.index(message) + 1, len(history))) # 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 del_sent.edit(content='🗑 **Deleted** `{}/{}` **messages.**'.format(history.index(message) + 1, len(history)))
await asyncio.sleep(self.RATE_LIMIT) await asyncio.sleep(self.RATE_LIMIT)
await del_sent.edit(content='🗑 `{}` **of** <@{}>**\'s messages deleted from** {}**.**'.format(len(history), uid, ctx.guild.name)) await del_sent.edit(content='🗑 `{}` **of** <@{}>**\'s messages deleted from** {}**.**'.format(len(history), uid, ctx.guild.name))
except exc.CheckFail: except exc.CheckFail:
await ctx.send('❌ **Deletion aborted.**', delete_after=10) await ctx.send('❌ **Deletion aborted.**', delete_after=10)
except TimeoutError: except TimeoutError:
await ctx.send('❌ **Deletion timed out.**', delete_after=10) await ctx.send('❌ **Deletion timed out.**', delete_after=10)
@ -152,11 +158,13 @@ class Administration:
while not self.bot.is_closed(): while not self.bot.is_closed():
message = await self.bot.wait_for('message', check=check) message = await self.bot.wait_for('message', check=check)
await self.queue.put(message) await self.queue.put(message)
except exc.Abort: except exc.Abort:
u.tasks['management']['auto_delete'].remove(channel.id) u.tasks['management']['auto_delete'].remove(channel.id)
u.dump(u.tasks, 'cogs/tasks.pkl') u.dump(u.tasks, 'cogs/tasks.pkl')
print('Stopped looping {}'.format(channel.id)) print('Stopped looping {}'.format(channel.id))
await channel.send('✅ **Stopped deleting messages in** {}**.**'.format(channel.mention), delete_after=5) await channel.send('✅ **Stopped deleting messages in** {}**.**'.format(channel.mention), delete_after=5)
except AttributeError: except AttributeError:
pass pass
@ -176,5 +184,19 @@ class Administration:
await ctx.send('✅ **Auto-deleting all messages in this channel.**', delete_after=5) await ctx.send('✅ **Auto-deleting all messages in this channel.**', delete_after=5)
else: else:
raise exc.Exists raise exc.Exists
except exc.Exists: except exc.Exists:
await ctx.send('❌ **Already auto-deleting in this channel.** Type `stop` to stop.', delete_after=10) 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']))

View file

@ -58,7 +58,7 @@ def is_nsfw():
def del_ctx(): def del_ctx():
async def predicate(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() await ctx.message.delete()
return True return True
return commands.check(predicate) return commands.check(predicate)

View file

@ -50,6 +50,7 @@ def dump(obj, filename):
pkl.dump(obj, outfile) pkl.dump(obj, outfile)
settings = setdefault('settings.pkl', {'del_ctx': []})
tasks = setdefault('cogs/tasks.pkl', {}) tasks = setdefault('cogs/tasks.pkl', {})