From 1070cf07359dc2df963b3697afae166d06da8c15 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Mon, 17 Oct 2016 01:48:56 -0400 Subject: Add MessageChannel.typing context manager for prolonged typing. --- discord/abc.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'discord/abc.py') 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| -- cgit v1.2.3