Add MessageChannel.typing context manager for prolonged typing.

This commit is contained in:
Rapptz
2016-10-17 01:48:56 -04:00
parent 53ab263125
commit 1070cf0735
2 changed files with 75 additions and 0 deletions

View File

@ -31,6 +31,7 @@ import asyncio
from .message import Message
from .iterators import LogsFromIterator
from .context_managers import Typing
class Snowflake(metaclass=abc.ABCMeta):
__slots__ = ()
@ -182,6 +183,20 @@ class MessageChannel(metaclass=abc.ABCMeta):
channel_id, _ = self._get_destination()
yield from self._state.http.send_typing(channel_id)
def typing(self):
"""Returns a context manager that allows you to type for an indefinite period of time.
This is useful for denoting long computations in your bot.
Example Usage: ::
with channel.typing():
# do expensive stuff here
await channel.send_message('done!')
"""
return Typing(self)
@asyncio.coroutine
def upload(self, fp, *, filename=None, content=None, tts=False):
"""|coro|