async def _download_photo(self, photo, file, date, thumb, progress_callback):
        """Specialized version of .download_media() for photos"""
        # Determine the photo and its largest size
        if isinstance(photo, types.MessageMediaPhoto):
            photo = photo.photo
        if not isinstance(photo, types.Photo):
            return

        size = self._get_thumb(photo.sizes, thumb)
        if not size or isinstance(size, types.PhotoSizeEmpty):
            return

        file = self._get_proper_filename(file, 'photo', '.jpg', date=date)
        if isinstance(size, (types.PhotoCachedSize, types.PhotoStrippedSize)):
            return self._download_cached_photo_size(size, file)

        result = await self.download_file(
            types.InputPhotoFileLocation(
                id=photo.id,
                access_hash=photo.access_hash,
                file_reference=photo.file_reference,
                thumb_size=size.type
            ),
            file,
            file_size=size.size,
            progress_callback=progress_callback
        )
        return result if file is bytes else file
async def _download_photo ( self , photo , file , date , thumb , progress_callback ) : if isinstance ( photo , types . MessageMediaPhoto ) : photo = photo . photo if not isinstance ( photo , types . Photo ) : return size = self . _get_thumb ( photo . sizes , thumb ) if not size or isinstance ( size , types . PhotoSizeEmpty ) : return file = self . _get_proper_filename ( file , 'photo' , '.jpg' , date = date ) if isinstance ( size , ( types . PhotoCachedSize , types . PhotoStrippedSize ) ) : return self . _download_cached_photo_size ( size , file ) result = await self . download_file ( types . InputPhotoFileLocation ( id = photo . id , access_hash = photo . access_hash , file_reference = photo . file_reference , thumb_size = size . type ) , file , file_size = size . size , progress_callback = progress_callback ) return result if file is bytes else file
Specialized version of .download_media() for photos