Change Messageable channel getter to be a coroutine.
This commit is contained in:
@ -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):
|
||||
|
Reference in New Issue
Block a user