mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-22 09:26:37 +03:00
Fetch difference only if it is worth it
This commit is contained in:
parent
f5e611e4d2
commit
532bd1c916
|
@ -295,7 +295,10 @@ class UpdateMethods(UserMethods):
|
||||||
# We could add a lock to not fetch the same pts twice if we are
|
# We could add a lock to not fetch the same pts twice if we are
|
||||||
# already fetching it. However this does not happen in practice,
|
# already fetching it. However this does not happen in practice,
|
||||||
# which makes sense, because different updates have different pts.
|
# which makes sense, because different updates have different pts.
|
||||||
await self._get_difference(update, channel_id, pts_date)
|
if self._state_cache.update(update, check_only=True):
|
||||||
|
# If the update doesn't have pts, fetching won't do anything.
|
||||||
|
# For example, UpdateUserStatus or UpdateChatUserTyping.
|
||||||
|
await self._get_difference(update, channel_id, pts_date)
|
||||||
|
|
||||||
built = EventBuilderDict(self, update)
|
built = EventBuilderDict(self, update)
|
||||||
if self._conversations:
|
if self._conversations:
|
||||||
|
|
|
@ -87,12 +87,16 @@ class StateCache:
|
||||||
types.updates.ChannelDifferenceEmpty,
|
types.updates.ChannelDifferenceEmpty,
|
||||||
types.updates.ChannelDifferenceTooLong,
|
types.updates.ChannelDifferenceTooLong,
|
||||||
types.updates.ChannelDifference
|
types.updates.ChannelDifference
|
||||||
))
|
)),
|
||||||
|
check_only=False
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
Update the state with the given update.
|
Update the state with the given update.
|
||||||
"""
|
"""
|
||||||
cid = update.CONSTRUCTOR_ID
|
cid = update.CONSTRUCTOR_ID
|
||||||
|
if check_only:
|
||||||
|
return cid in has_pts or cid in has_date or cid in has_channel_pts
|
||||||
|
|
||||||
if cid in has_pts:
|
if cid in has_pts:
|
||||||
if cid in has_date:
|
if cid in has_date:
|
||||||
self._pts_date = update.pts, update.date
|
self._pts_date = update.pts, update.date
|
||||||
|
|
Loading…
Reference in New Issue
Block a user