Fix get_profile_photos not working properly in channels

This commit is contained in:
Dan 2020-08-29 15:11:21 +02:00
parent 899bd7bda3
commit 4dd068643d

View File

@ -65,6 +65,14 @@ class GetProfilePhotos(Scaffold):
peer_id = await self.resolve_peer(chat_id) peer_id = await self.resolve_peer(chat_id)
if isinstance(peer_id, raw.types.InputPeerChannel): if isinstance(peer_id, raw.types.InputPeerChannel):
r = await self.send(
raw.functions.channels.GetFullChannel(
channel=peer_id
)
)
current = types.Photo._parse(self, r.full_chat.chat_photo) or []
r = await utils.parse_messages( r = await utils.parse_messages(
self, self,
await self.send( await self.send(
@ -75,7 +83,7 @@ class GetProfilePhotos(Scaffold):
min_date=0, min_date=0,
max_date=0, max_date=0,
offset_id=0, offset_id=0,
add_offset=offset, add_offset=0,
limit=limit, limit=limit,
max_id=0, max_id=0,
min_id=0, min_id=0,
@ -84,7 +92,17 @@ class GetProfilePhotos(Scaffold):
) )
) )
return types.List([message.new_chat_photo for message in r][:limit]) extra = [message.new_chat_photo for message in r]
if extra:
if current:
photos = ([current] + extra) if current.file_id != extra[0].file_id else extra
else:
photos = extra
else:
photos = [current]
return types.List(photos[offset:limit])
else: else:
r = await self.send( r = await self.send(
raw.functions.photos.GetUserPhotos( raw.functions.photos.GetUserPhotos(