From c4142753d03f6079472ed2ef95ca0ee2c50565c5 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Mon, 19 Mar 2018 01:08:34 +0100 Subject: [PATCH] Handle minified channel updates --- pyrogram/client/client.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/pyrogram/client/client.py b/pyrogram/client/client.py index 9c49058a..e0a16c2b 100644 --- a/pyrogram/client/client.py +++ b/pyrogram/client/client.py @@ -616,6 +616,28 @@ class Client: ) or getattr(update, "channel_id", None) pts = getattr(update, "pts", None) + pts_count = getattr(update, "pts_count", None) + + if isinstance(update, types.UpdateNewChannelMessage): + diff = self.send( + functions.updates.GetChannelDifference( + channel=self.resolve_peer(update.message.to_id.channel_id), + filter=types.ChannelMessagesFilter( + ranges=[types.MessageRange( + min_id=update.message.id, + max_id=update.message.id + )] + ), + pts=pts - pts_count, + limit=pts + ) + ) + + self.fetch_peers(diff.users) + self.fetch_peers(diff.chats) + + updates.users += diff.users + updates.chats += diff.chats if channel_id and pts: if channel_id not in self.channels_pts: