mirror of
https://github.com/myned/modufur.git
synced 2024-11-01 21:02:38 +00:00
Merge branch 'dev'
This commit is contained in:
commit
0eb3e75c3d
3 changed files with 50 additions and 39 deletions
|
@ -637,7 +637,7 @@ class MsG:
|
||||||
@checks.del_ctx()
|
@checks.del_ctx()
|
||||||
async def pool_paginator(self, ctx, *args):
|
async def pool_paginator(self, ctx, *args):
|
||||||
def on_reaction(reaction, user):
|
def on_reaction(reaction, user):
|
||||||
if reaction.emoji == '\N{OCTAGONAL SIGN}' and reaction.message.id == ctx.message.id and user is ctx.author:
|
if reaction.emoji == '\N{OCTAGONAL SIGN}' and reaction.message.id == ctx.message.id and (user is ctx.author or user.permissions_in(reaction.message.channel).manage_messages):
|
||||||
raise exc.Abort
|
raise exc.Abort
|
||||||
elif reaction.emoji == '\N{HEAVY BLACK HEART}' and reaction.message.id == paginator.id and user is ctx.author:
|
elif reaction.emoji == '\N{HEAVY BLACK HEART}' and reaction.message.id == paginator.id and user is ctx.author:
|
||||||
raise exc.Save
|
raise exc.Save
|
||||||
|
@ -775,7 +775,7 @@ class MsG:
|
||||||
@checks.is_nsfw()
|
@checks.is_nsfw()
|
||||||
async def e621_paginator(self, ctx, *args):
|
async def e621_paginator(self, ctx, *args):
|
||||||
def on_reaction(reaction, user):
|
def on_reaction(reaction, user):
|
||||||
if reaction.emoji == '\N{OCTAGONAL SIGN}' and reaction.message.id == ctx.message.id and user is ctx.author:
|
if reaction.emoji == '\N{OCTAGONAL SIGN}' and reaction.message.id == ctx.message.id and (user is ctx.author or user.permissions_in(reaction.message.channel).manage_messages):
|
||||||
raise exc.Abort
|
raise exc.Abort
|
||||||
elif reaction.emoji == '\N{HEAVY BLACK HEART}' and reaction.message.id == paginator.id and user is ctx.author:
|
elif reaction.emoji == '\N{HEAVY BLACK HEART}' and reaction.message.id == paginator.id and user is ctx.author:
|
||||||
raise exc.Save
|
raise exc.Save
|
||||||
|
@ -866,7 +866,8 @@ class MsG:
|
||||||
try:
|
try:
|
||||||
if c % limit == 0:
|
if c % limit == 0:
|
||||||
await dest.trigger_typing()
|
await dest.trigger_typing()
|
||||||
posts.update(await self._get_posts(ctx, booru='e621', tags=tags, limit=limit, previous=posts))
|
temposts, order = await self._get_posts(ctx, booru='e621', tags=tags, limit=limit, previous=posts)
|
||||||
|
posts.update(temposts)
|
||||||
|
|
||||||
keys = list(posts.keys())
|
keys = list(posts.keys())
|
||||||
values = list(posts.values())
|
values = list(posts.values())
|
||||||
|
@ -929,17 +930,17 @@ class MsG:
|
||||||
|
|
||||||
await ctx.message.add_reaction('\N{WHITE HEAVY CHECK MARK}')
|
await ctx.message.add_reaction('\N{WHITE HEAVY CHECK MARK}')
|
||||||
|
|
||||||
@e621_paginator.error
|
# @e621_paginator.error
|
||||||
async def e621_paginator_error(self, ctx, error):
|
# async def e621_paginator_error(self, ctx, error):
|
||||||
if isinstance(error, errext.CheckFailure):
|
# if isinstance(error, exc.NSFW):
|
||||||
await ctx.send('\N{NO ENTRY} {} **is not an NSFW channel**'.format(ctx.channel.mention), delete_after=10)
|
# await ctx.send('\N{NO ENTRY} {} **is not an NSFW channel**'.format(ctx.channel.mention), delete_after=10)
|
||||||
return await ctx.message.add_reaction('\N{NO ENTRY}')
|
# await ctx.message.add_reaction('\N{NO ENTRY}')
|
||||||
|
|
||||||
@commands.command(name='e926page', aliases=['e926p', 'e9p', '9p'])
|
@commands.command(name='e926page', aliases=['e926p', 'e9p', '9p'])
|
||||||
@checks.del_ctx()
|
@checks.del_ctx()
|
||||||
async def e926_paginator(self, ctx, *args):
|
async def e926_paginator(self, ctx, *args):
|
||||||
def on_reaction(reaction, user):
|
def on_reaction(reaction, user):
|
||||||
if reaction.emoji == '\N{OCTAGONAL SIGN}' and reaction.message.id == ctx.message.id and user is ctx.author:
|
if reaction.emoji == '\N{OCTAGONAL SIGN}' and reaction.message.id == ctx.message.id and (user is ctx.author or user.permissions_in(reaction.message.channel).manage_messages):
|
||||||
raise exc.Abort
|
raise exc.Abort
|
||||||
elif reaction.emoji == '\N{HEAVY BLACK HEART}' and reaction.message.id == paginator.id and user is ctx.author:
|
elif reaction.emoji == '\N{HEAVY BLACK HEART}' and reaction.message.id == paginator.id and user is ctx.author:
|
||||||
raise exc.Save
|
raise exc.Save
|
||||||
|
@ -1030,7 +1031,8 @@ class MsG:
|
||||||
try:
|
try:
|
||||||
if c % limit == 0:
|
if c % limit == 0:
|
||||||
await dest.trigger_typing()
|
await dest.trigger_typing()
|
||||||
posts.update(await self._get_posts(ctx, booru='e926', tags=tags, limit=limit, previous=posts))
|
temposts, order = await self._get_posts(ctx, booru='e926', tags=tags, limit=limit, previous=posts)
|
||||||
|
posts.update(temposts)
|
||||||
|
|
||||||
keys = list(posts.keys())
|
keys = list(posts.keys())
|
||||||
values = list(posts.values())
|
values = list(posts.values())
|
||||||
|
@ -1142,11 +1144,11 @@ class MsG:
|
||||||
# tools.command_dict.setdefault(str(ctx.author.id), {}).update(
|
# tools.command_dict.setdefault(str(ctx.author.id), {}).update(
|
||||||
# {'command': ctx.command, 'args': ctx.args})
|
# {'command': ctx.command, 'args': ctx.args})
|
||||||
|
|
||||||
@e621.error
|
# @e621.error
|
||||||
async def e621_error(self, ctx, error):
|
# async def e621_error(self, ctx, error):
|
||||||
if isinstance(error, errext.CheckFailure):
|
# if isinstance(error, exc.NSFW):
|
||||||
await ctx.send('\N{NO ENTRY} {} **is not an NSFW channel**'.format(ctx.channel.mention), delete_after=10)
|
# await ctx.send('\N{NO ENTRY} {} **is not an NSFW channel**'.format(ctx.channel.mention), delete_after=10)
|
||||||
return await ctx.message.add_reaction('\N{NO ENTRY}')
|
# await ctx.message.add_reaction('\N{NO ENTRY}')
|
||||||
|
|
||||||
# Searches for and returns images from e926.net given tags when not blacklisted
|
# Searches for and returns images from e926.net given tags when not blacklisted
|
||||||
@commands.command(aliases=['e9', '9'], brief='e926 | SFW', description='e926 | SFW\nTag-based search for e926.net\n\nYou can only search 5 tags and 6 images at once for now.\ne9 [tags...] ([# of images])')
|
@commands.command(aliases=['e9', '9'], brief='e926 | SFW', description='e926 | SFW\nTag-based search for e926.net\n\nYou can only search 5 tags and 6 images at once for now.\ne9 [tags...] ([# of images])')
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
from discord.ext.commands import errors as errext
|
||||||
|
|
||||||
base = '\N{WARNING SIGN} **An internal error has occurred.** This has been reported to my master. \N{WOLF FACE}'
|
base = '\N{WARNING SIGN} **An internal error has occurred.** This has been reported to my master. \N{WOLF FACE}'
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,6 +7,10 @@ async def send_error(ctx, error):
|
||||||
await ctx.send('{}\n```\n{}```'.format(base, error))
|
await ctx.send('{}\n```\n{}```'.format(base, error))
|
||||||
|
|
||||||
|
|
||||||
|
# class NSFW(errext.CheckFailure):
|
||||||
|
# pass
|
||||||
|
|
||||||
|
|
||||||
class Wrong(Exception):
|
class Wrong(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -37,79 +43,79 @@ class GoTo(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Exists(Exception):
|
class Exists(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class MissingArgument(Exception):
|
class MissingArgument(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class FavoritesNotFound(Exception):
|
class FavoritesNotFound(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class PostError(Exception):
|
class PostError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ImageError(Exception):
|
class ImageError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class MatchError(Exception):
|
class MatchError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TagBlacklisted(Exception):
|
class TagBlacklisted(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class BoundsError(Exception):
|
class BoundsError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TagBoundsError(Exception):
|
class TagBoundsError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TagExists(Exception):
|
class TagExists(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TagError(Exception):
|
class TagError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class FlagError(Exception):
|
class FlagError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class BlacklistError(Exception):
|
class BlacklistError(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class NotFound(Exception):
|
class NotFound(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Timeout(Exception):
|
class Timeout(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class InvalidVideoFile(Exception):
|
class InvalidVideoFile(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class MissingAttachment(Exception):
|
class MissingAttachment(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TooManyAttachments(Exception):
|
class TooManyAttachments(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class CheckFail(Exception):
|
class CheckFail(errext.CommandError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ from contextlib import suppress
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
import discord as d
|
import discord as d
|
||||||
|
from discord import errors as err
|
||||||
from discord import utils
|
from discord import utils
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from discord.ext.commands import errors as errext
|
from discord.ext.commands import errors as errext
|
||||||
|
@ -72,7 +73,7 @@ async def on_message(message):
|
||||||
async def on_error(error, *args, **kwargs):
|
async def on_error(error, *args, **kwargs):
|
||||||
print('\n! ! ! ! !\nE R R O R : {}\n! ! ! ! !\n'.format(error), file=sys.stderr)
|
print('\n! ! ! ! !\nE R R O R : {}\n! ! ! ! !\n'.format(error), file=sys.stderr)
|
||||||
tb.print_exc()
|
tb.print_exc()
|
||||||
await bot.get_user(u.config['owner_id']).send('**ERROR** \N{WARNING SIGN}\n```\n{}```'.format(error))
|
await bot.get_user(u.config['owner_id']).send('**ERROR** \N{WARNING SIGN}\n```\n{}```'.format(''.join(tb.format_exception(type(error), error, error.__traceback__))))
|
||||||
await bot.get_channel(u.config['info_channel']).send('**ERROR** \N{WARNING SIGN}\n```\n{}```'.format(error))
|
await bot.get_channel(u.config['info_channel']).send('**ERROR** \N{WARNING SIGN}\n```\n{}```'.format(error))
|
||||||
if u.temp:
|
if u.temp:
|
||||||
channel = bot.get_channel(u.temp['startup_chan'])
|
channel = bot.get_channel(u.temp['startup_chan'])
|
||||||
|
@ -86,8 +87,10 @@ async def on_error(error, *args, **kwargs):
|
||||||
|
|
||||||
@bot.event
|
@bot.event
|
||||||
async def on_command_error(ctx, error):
|
async def on_command_error(ctx, error):
|
||||||
if isinstance(error, errext.CheckFailure):
|
if isinstance(error, err.NotFound):
|
||||||
await ctx.send('\N{NO ENTRY} **Insufficient permissions**', delete_after=10)
|
pass
|
||||||
|
elif isinstance(error, errext.CheckFailure):
|
||||||
|
await ctx.send('**Insufficient permissions**', delete_after=10)
|
||||||
await ctx.message.add_reaction('\N{NO ENTRY}')
|
await ctx.message.add_reaction('\N{NO ENTRY}')
|
||||||
elif isinstance(error, errext.CommandNotFound):
|
elif isinstance(error, errext.CommandNotFound):
|
||||||
print('INVALID COMMAND : {}'.format(error), file=sys.stderr)
|
print('INVALID COMMAND : {}'.format(error), file=sys.stderr)
|
||||||
|
@ -96,8 +99,8 @@ async def on_command_error(ctx, error):
|
||||||
print('\n! ! ! ! ! ! ! ! ! ! ! !\nC O M M A N D E R R O R : {}\n! ! ! ! ! ! ! ! ! ! ! !\n'.format(
|
print('\n! ! ! ! ! ! ! ! ! ! ! !\nC O M M A N D E R R O R : {}\n! ! ! ! ! ! ! ! ! ! ! !\n'.format(
|
||||||
error), file=sys.stderr)
|
error), file=sys.stderr)
|
||||||
tb.print_exception(type(error), error, error.__traceback__, 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** \N{WARNING SIGN} `{}` from *@{}* in {}\n```\n{}```'.format(ctx.message.content, ctx.author.name, ctx.guild.name, error))
|
await bot.get_user(u.config['owner_id']).send('**COMMAND ERROR** \N{WARNING SIGN} `{}` from {} in {}\n```\n{}```'.format(ctx.message.content, ctx.author.mention, ctx.channel.mention, ''.join(tb.format_exception(type(error), error, error.__traceback__))))
|
||||||
await bot.get_channel(u.config['info_channel']).send('**COMMAND ERROR** \N{WARNING SIGN} `{}` from *@{}* in {}\n```\n{}```'.format(ctx.message.content, ctx.author.name, ctx.guild.name, error))
|
await bot.get_channel(u.config['info_channel']).send('**COMMAND ERROR** \N{WARNING SIGN} `{}` from {} in {}\n```\n{}```'.format(ctx.message.content, ctx.author.mention, ctx.channel.mention, error))
|
||||||
await exc.send_error(ctx, error)
|
await exc.send_error(ctx, error)
|
||||||
await ctx.message.add_reaction('\N{WARNING SIGN}')
|
await ctx.message.add_reaction('\N{WARNING SIGN}')
|
||||||
# u.notify('C O M M A N D E R R O R')
|
# u.notify('C O M M A N D E R R O R')
|
||||||
|
|
Loading…
Reference in a new issue