Add progress_callback to download_profile_photo

This commit is contained in:
Lonami Exo 2022-01-16 12:42:00 +01:00
parent dc0f978b59
commit 1e779a91b7
2 changed files with 10 additions and 4 deletions

View File

@ -180,7 +180,8 @@ async def download_profile_photo(
entity: 'hints.EntityLike', entity: 'hints.EntityLike',
file: 'hints.FileLike' = None, file: 'hints.FileLike' = None,
*, *,
thumb) -> typing.Optional[str]: thumb,
progress_callback) -> typing.Optional[str]:
# hex(crc32(x.encode('ascii'))) for x in # hex(crc32(x.encode('ascii'))) for x in
# ('User', 'Chat', 'UserFull', 'ChatFull') # ('User', 'Chat', 'UserFull', 'ChatFull')
ENTITIES = (0x2da17977, 0xc5af5d94, 0x1f4661b9, 0xd49a2697) ENTITIES = (0x2da17977, 0xc5af5d94, 0x1f4661b9, 0xd49a2697)
@ -201,7 +202,7 @@ async def download_profile_photo(
return await _download_photo( return await _download_photo(
self, entity.chat_photo, file, date=None, self, entity.chat_photo, file, date=None,
thumb=thumb, progress_callback=None thumb=thumb, progress_callback=progress_callback
) )
for attr in ('username', 'first_name', 'title'): for attr in ('username', 'first_name', 'title'):
@ -247,7 +248,7 @@ async def download_profile_photo(
full = await self(_tl.fn.channels.GetFullChannel(ie)) full = await self(_tl.fn.channels.GetFullChannel(ie))
return await _download_photo( return await _download_photo(
self, full.full_chat.chat_photo, file, self, full.full_chat.chat_photo, file,
date=None, progress_callback=None, date=None, progress_callback=progress_callback,
thumb=thumb thumb=thumb
) )
else: else:

View File

@ -1628,7 +1628,8 @@ class TelegramClient:
entity: 'hints.EntityLike', entity: 'hints.EntityLike',
file: 'hints.FileLike' = None, file: 'hints.FileLike' = None,
*, *,
thumb: typing.Union[str, enums.Size] = ()) -> typing.Optional[str]: thumb: typing.Union[str, enums.Size] = (),
progress_callback: 'hints.ProgressCallback' = None) -> typing.Optional[str]:
""" """
Downloads the profile photo from the given user, chat or channel. Downloads the profile photo from the given user, chat or channel.
@ -1662,6 +1663,10 @@ class TelegramClient:
By default, the largest size (original) is downloaded. By default, the largest size (original) is downloaded.
progress_callback (`callable`, optional):
A callback function accepting two parameters:
``(received bytes, total)``.
Returns Returns
`None` if no photo was provided, or if it was Empty. On success `None` if no photo was provided, or if it was Empty. On success
the file path is returned since it may differ from the one given. the file path is returned since it may differ from the one given.