added supports albums contains photos and videos in send_file

This commit is contained in:
Alexhol 2020-01-17 01:52:49 +03:00
parent 5e6d33e104
commit 5405e6a2ba

View File

@ -269,51 +269,36 @@ class UploadMethods:
# First check if the user passed an iterable, in which case # First check if the user passed an iterable, in which case
# we may want to send as an album if all are photo files. # we may want to send as an album if all are photo files.
if utils.is_list_like(file): if utils.is_list_like(file):
image_captions = [] media_captions = []
document_captions = []
video_captions = []
if utils.is_list_like(caption): if utils.is_list_like(caption):
captions = caption captions = caption
else: else:
captions = [caption] captions = [caption]
# TODO Fix progress_callback # TODO Fix progress_callback
images = [] media = []
videos = []
if force_document: if force_document:
documents = file documents = file
else: else:
documents = [] documents = []
for doc, cap in itertools.zip_longest(file, captions): for doc, cap in itertools.zip_longest(file, captions):
if utils.is_image(doc): if utils.is_image(doc) or utils.is_video(doc):
images.append(doc) media.append(doc)
image_captions.append(cap) media_captions.append(cap)
elif utils.is_video(doc):
videos.append(doc)
video_captions.append(cap)
else: else:
documents.append(doc) documents.append(doc)
document_captions.append(cap) document_captions.append(cap)
result = [] result = []
while images: while media:
result += await self._send_album( result += await self._send_album(
entity, images[:10], caption=image_captions[:10], entity, media[:10], caption=media_captions[:10],
progress_callback=progress_callback, reply_to=reply_to,
parse_mode=parse_mode, silent=silent, schedule=schedule
)
images = images[10:]
image_captions = image_captions[10:]
while videos:
result += await self._send_album(
entity, videos[:10], caption=video_captions[:10],
progress_callback=progress_callback, reply_to=reply_to, progress_callback=progress_callback, reply_to=reply_to,
parse_mode=parse_mode, silent=silent, schedule=schedule, parse_mode=parse_mode, silent=silent, schedule=schedule,
supports_streaming=supports_streaming supports_streaming=supports_streaming
) )
videos = videos[10:] media = media[10:]
video_captions = video_captions[10:] media_captions = media_captions[10:]
for doc, cap in zip(documents, captions): for doc, cap in zip(documents, captions):
result.append(await self.send_file( result.append(await self.send_file(
@ -407,6 +392,7 @@ class UploadMethods:
r = await self(functions.messages.UploadMediaRequest( r = await self(functions.messages.UploadMediaRequest(
entity, media=fm entity, media=fm
)) ))
fm = utils.get_input_media( fm = utils.get_input_media(
r.document, supports_streaming=supports_streaming) r.document, supports_streaming=supports_streaming)