Reimplement catch_up

This commit is contained in:
Lonami Exo 2022-01-23 19:53:48 +01:00
parent f547a00da3
commit 4b85ced1e1
2 changed files with 6 additions and 5 deletions

View File

@ -2901,11 +2901,9 @@ class TelegramClient:
@forward_call(updates.catch_up)
async def catch_up(self: 'TelegramClient'):
"""
"Catches up" on the missed updates while the client was offline.
You should call this method after registering the event handlers
so that the updates it loads can by processed by your script.
Forces the client to "catch-up" on missed updates.
This can also be used to forcibly fetch new updates if there are any.
The method does not wait for all updates to be received.
Example
.. code-block:: python

View File

@ -80,7 +80,10 @@ def list_event_handlers(self: 'TelegramClient')\
return [(callback, event) for event, callback in self._event_builders]
async def catch_up(self: 'TelegramClient'):
pass
# The update loop is probably blocked on either timeout or an update to arrive.
# Unblock the loop by pushing a dummy update which will always trigger a gap.
# This, in return, causes the update loop to catch up.
await self._updates_queue.put(_tl.UpdatesTooLong())
async def _update_loop(self: 'TelegramClient'):
try: