diff options
| author | Rapptz <[email protected]> | 2016-10-17 01:48:56 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2017-01-03 09:51:52 -0500 |
| commit | 1070cf07359dc2df963b3697afae166d06da8c15 (patch) | |
| tree | 61c04891be6b4a68b8655482a794c5223d0147df /discord/abc.py | |
| parent | Split channel types. (diff) | |
| download | discord.py-1070cf07359dc2df963b3697afae166d06da8c15.tar.xz discord.py-1070cf07359dc2df963b3697afae166d06da8c15.zip | |
Add MessageChannel.typing context manager for prolonged typing.
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| |