mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-02-10 16:40:57 +03:00
Reimplement catch_up
This commit is contained in:
parent
f547a00da3
commit
4b85ced1e1
|
@ -2901,11 +2901,9 @@ class TelegramClient:
|
||||||
@forward_call(updates.catch_up)
|
@forward_call(updates.catch_up)
|
||||||
async def catch_up(self: 'TelegramClient'):
|
async def catch_up(self: 'TelegramClient'):
|
||||||
"""
|
"""
|
||||||
"Catches up" on the missed updates while the client was offline.
|
Forces the client to "catch-up" on missed updates.
|
||||||
You should call this method after registering the event handlers
|
|
||||||
so that the updates it loads can by processed by your script.
|
|
||||||
|
|
||||||
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
|
Example
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
|
@ -80,7 +80,10 @@ def list_event_handlers(self: 'TelegramClient')\
|
||||||
return [(callback, event) for event, callback in self._event_builders]
|
return [(callback, event) for event, callback in self._event_builders]
|
||||||
|
|
||||||
async def catch_up(self: 'TelegramClient'):
|
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'):
|
async def _update_loop(self: 'TelegramClient'):
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user