aboutsummaryrefslogtreecommitdiff
path: root/discord/abc.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2017-01-03 09:05:08 -0500
committerRapptz <[email protected]>2017-01-03 09:52:11 -0500
commit7431a127cf33802c1bcc65beda8eb08cfa2b6655 (patch)
tree4e1f789049f2c05d6a56e2ac9928106f2bdc4ddc /discord/abc.py
parentMove message creation to a factory method inside ConnectionState. (diff)
downloaddiscord.py-7431a127cf33802c1bcc65beda8eb08cfa2b6655.tar.xz
discord.py-7431a127cf33802c1bcc65beda8eb08cfa2b6655.zip
Change Messageable channel getter to be a coroutine.
Diffstat (limited to 'discord/abc.py')
-rw-r--r--discord/abc.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/discord/abc.py b/discord/abc.py
index 8ef15db3..89229279 100644
--- a/discord/abc.py
+++ b/discord/abc.py
@@ -467,6 +467,7 @@ class GuildChannel:
class Messageable(metaclass=abc.ABCMeta):
__slots__ = ()
+ @asyncio.coroutine
@abc.abstractmethod
def _get_channel(self):
raise NotImplementedError
@@ -534,7 +535,7 @@ class Messageable(metaclass=abc.ABCMeta):
The message that was sent.
"""
- channel = self._get_channel()
+ channel = yield from self._get_channel()
guild_id = self._get_guild_id()
state = self._state
content = str(content) if content else None
@@ -576,7 +577,7 @@ class Messageable(metaclass=abc.ABCMeta):
*Typing* indicator will go away after 10 seconds, or after a message is sent.
"""
- channel = self._get_channel()
+ channel = yield from self._get_channel()
yield from self._state.http.send_typing(channel.id)
def typing(self):
@@ -596,7 +597,8 @@ class Messageable(metaclass=abc.ABCMeta):
await channel.send_message('done!')
"""
- return Typing(self._get_channel())
+ channel = yield from self._get_channel()
+ return Typing(channel)
@asyncio.coroutine
def get_message(self, id):
@@ -626,7 +628,7 @@ class Messageable(metaclass=abc.ABCMeta):
Retrieving the message failed.
"""
- channel = self._get_channel()
+ channel = yield from self._get_channel()
data = yield from self._state.http.get_message(channel.id, id)
return state.create_message(channel=channel, data=data)
@@ -660,7 +662,7 @@ class Messageable(metaclass=abc.ABCMeta):
raise ClientException('Can only delete messages in the range of [2, 100]')
message_ids = [m.id for m in messages]
- channel = self._get_channel()
+ channel = yield from self._get_channel()
guild_id = self._get_guild_id()
yield from self._state.http.delete_messages(channel.id, message_ids, guild_id)
@@ -677,7 +679,7 @@ class Messageable(metaclass=abc.ABCMeta):
Retrieving the pinned messages failed.
"""
- channel = self._get_channel()
+ channel = yield from self._get_channel()
state = self._state
data = yield from state.http.pins_from(channel.id)
return [state.create_message(channel=channel, data=m) for m in data]
@@ -745,7 +747,7 @@ class Messageable(metaclass=abc.ABCMeta):
if message.author == client.user:
counter += 1
"""
- return LogsFromIterator(self._get_channel(), limit=limit, before=before, after=after, around=around, reverse=reverse)
+ return LogsFromIterator(self, limit=limit, before=before, after=after, around=around, reverse=reverse)
@asyncio.coroutine
def purge(self, *, limit=100, check=None, before=None, after=None, around=None):