aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-07-02 01:43:33 -0400
committerRapptz <[email protected]>2017-07-02 01:43:45 -0400
commit8caa088d259b8640ed6429bc21bdebebf8443c74 (patch)
tree6acd019a2b47408ed4b233e8c6add34f2a050630
parentFix Message.remove_reaction and Message.add_reaction taking in Reaction (diff)
downloaddiscord.py-8caa088d259b8640ed6429bc21bdebebf8443c74.tar.xz
discord.py-8caa088d259b8640ed6429bc21bdebebf8443c74.zip
Allow PartialReactionEmoji in add_reaction and remove_reaction.
-rw-r--r--discord/emoji.py5
-rw-r--r--discord/message.py10
2 files changed, 12 insertions, 3 deletions
diff --git a/discord/emoji.py b/discord/emoji.py
index 0c161c6c..a959bea8 100644
--- a/discord/emoji.py
+++ b/discord/emoji.py
@@ -80,6 +80,11 @@ class PartialReactionEmoji(namedtuple('PartialReactionEmoji', 'name id')):
"""Checks if this is a Unicode emoji."""
return self.id is None
+ def _as_reaction(self):
+ if self.id is None:
+ return self.name
+ return ':%s:%s' % (self.name, self.id)
+
class Emoji(Hashable):
"""Represents a custom emoji.
diff --git a/discord/message.py b/discord/message.py
index d321663f..3efea9fb 100644
--- a/discord/message.py
+++ b/discord/message.py
@@ -29,7 +29,7 @@ import re
from . import utils
from .reaction import Reaction
-from .emoji import Emoji
+from .emoji import Emoji, PartialReactionEmoji
from .calls import CallMessage
from .enums import MessageType, try_enum
from .errors import InvalidArgument, ClientException, HTTPException, NotFound
@@ -593,7 +593,7 @@ class Message:
Parameters
------------
- emoji: Union[:class:`Emoji`, :class:`Reaction`, str]
+ emoji: Union[:class:`Emoji`, :class:`Reaction`, :class:`PartialReactionEmoji`, str]
The emoji to react with.
Raises
@@ -613,6 +613,8 @@ class Message:
if isinstance(emoji, Emoji):
emoji = '%s:%s' % (emoji.name, emoji.id)
+ elif isinstance(emoji, PartialReactionEmoji):
+ emoji = emoji._as_reaction()
elif isinstance(emoji, str):
pass # this is okay
else:
@@ -636,7 +638,7 @@ class Message:
Parameters
------------
- emoji: Union[:class:`Emoji`, :class:`Reaction`, str]
+ emoji: Union[:class:`Emoji`, :class:`Reaction`, :class:`PartialReactionEmoji`, str]
The emoji to remove.
member: :class:`abc.Snowflake`
The member for which to remove the reaction.
@@ -658,6 +660,8 @@ class Message:
if isinstance(emoji, Emoji):
emoji = '%s:%s' % (emoji.name, emoji.id)
+ elif isinstance(emoji, PartialReactionEmoji):
+ emoji = emoji._as_reaction()
elif isinstance(emoji, str):
pass # this is okay
else: