diff options
| author | Rapptz <[email protected]> | 2017-01-03 09:05:08 -0500 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2017-01-03 09:52:11 -0500 |
| commit | 7431a127cf33802c1bcc65beda8eb08cfa2b6655 (patch) | |
| tree | 4e1f789049f2c05d6a56e2ac9928106f2bdc4ddc /discord/abc.py | |
| parent | Move message creation to a factory method inside ConnectionState. (diff) | |
| download | discord.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.py | 16 |
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): |