Skip to content

Commit

Permalink
0.2.0: Add client.cancelListeners and pyrogram.errors.ListenerCanceled
Browse files Browse the repository at this point in the history
  • Loading branch information
usernein committed Apr 11, 2020
1 parent c230319 commit b225e31
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
2 changes: 1 addition & 1 deletion pyromod/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
along with pyromod. If not, see <https://www.gnu.org/licenses/>.
"""

__version__ = "0.1.0"
__version__ = "0.2.0"
21 changes: 17 additions & 4 deletions pyromod/listen/listen.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,11 @@

loop = asyncio.get_event_loop()


class ListenerCanceled(Exception):
pass

pyrogram.errors.ListenerCanceled = ListenerCanceled

@patch(pyrogram.client.client.Client)
class Client():
@patchable
Expand Down Expand Up @@ -62,8 +66,12 @@ async def ask(self, chat_id, text, filters=None, timeout=30, *args, **kwargs):
def clearListener(self, chat_id, future):
if future == self.deferred_listeners[chat_id]:
self.deferred_listeners.pop(chat_id, None)

__wraps__ = [__init__, listen, ask, clearListener]

@patchable
def cancelListeners(self, chat_id):
if chat_id in self.deferred_listeners and not self.deferred_listeners[chat_id]['future'].done():
self.deferred_listeners[chat_id]['future'].set_exception(ListenerCanceled('The listener has been cancelled with pyrogram.Client.cancelListeners'))
self.clearListener(chat_id, self.deferred_listeners[chat_id]['future'])

@patch(pyrogram.client.handlers.message_handler.MessageHandler)
class MessageHandler():
Expand Down Expand Up @@ -103,6 +111,9 @@ def listen(self, *args, **kwargs):
@patchable
def ask(self, *args, **kwargs):
return self._client.ask(self.id, *args, **kwargs)
@patchable
def cancelListeners(self):
return self._client.cancelListeners(self.id, *args, **kwargs)

@patch(pyrogram.client.types.user_and_chats.user.User)
class User(pyrogram.User):
Expand All @@ -112,4 +123,6 @@ def listen(self, *args, **kwargs):
@patchable
def ask(self, *args, **kwargs):
return self._client.ask(self.id, *args, **kwargs)

@patchable
def cancelListeners(self):
return self._client.cancelListeners(self.id, *args, **kwargs)

0 comments on commit b225e31

Please sign in to comment.