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: