diff options
Diffstat (limited to 'discord/abc.py')
| -rw-r--r-- | discord/abc.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/discord/abc.py b/discord/abc.py index 0b42b0e8..6963e28a 100644 --- a/discord/abc.py +++ b/discord/abc.py @@ -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| |