mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-05-10 07:49:48 +00:00
[commands] Add custom emoji converter.
This commit is contained in:
parent
c5a989eeb2
commit
c72c23278d
@ -161,3 +161,34 @@ class InviteConverter(Converter):
|
|||||||
return invite
|
return invite
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise BadArgument('Invite is invalid or expired') from e
|
raise BadArgument('Invite is invalid or expired') from e
|
||||||
|
|
||||||
|
class EmojiConverter(Converter):
|
||||||
|
@asyncio.coroutine
|
||||||
|
def convert(self):
|
||||||
|
message = self.ctx.message
|
||||||
|
bot = self.ctx.bot
|
||||||
|
|
||||||
|
match = re.match(r'<:([a-zA-Z0-9]+):([0-9]+)>$', self.argument)
|
||||||
|
result = None
|
||||||
|
server = message.server
|
||||||
|
if match is None:
|
||||||
|
# Try to get the emoji by name. Try local server first.
|
||||||
|
if server:
|
||||||
|
result = discord.utils.get(server.emojis, name=self.argument)
|
||||||
|
|
||||||
|
if result is None:
|
||||||
|
result = discord.utils.get(bot.get_all_emojis(), name=self.argument)
|
||||||
|
else:
|
||||||
|
emoji_id = match.group(2)
|
||||||
|
|
||||||
|
# Try to look up emoji by id.
|
||||||
|
if server:
|
||||||
|
result = discord.utils.get(server.emojis, id=emoji_id)
|
||||||
|
|
||||||
|
if result is None:
|
||||||
|
result = discord.utils.get(bot.get_all_emojis(), id=emoji_id)
|
||||||
|
|
||||||
|
if result is None:
|
||||||
|
raise BadArgument('Emoji "{}" not found.'.format(self.argument))
|
||||||
|
|
||||||
|
return result
|
||||||
|
Loading…
x
Reference in New Issue
Block a user