Скачивание нескольких фото или файлов pytelegrambotapi

пишу бота на Python 3 который отправляет фото из телеграмм на e-mail. Подскажите как реализовать скачивание и отправку альбома или несколько фотографий? Скачивается и отправляется только 1 фотография. Спасибо за ответы

try:
            file_info = bot.get_file(message.photo[len(message.photo)-1].file_id)
            downloaded_file = bot.download_file(file_info.file_path)
            filename = message.photo[0].file_id + '.jpg'
            text = MIMEText('Привет')

            attachment = MIMEApplication(downloaded_file)
            attachment.add_header('Content-Disposition', 'attachment', filename = filename)
            msg.attach(attachment)
            
        except TypeError:
            pass

        try:
            file_info = bot.get_file(message.document.file_id)
            downloaded_file = bot.download_file(file_info.file_path)
            filename = message.document.file_name
            text = MIMEText('Привет')

            attachment = MIMEApplication(downloaded_file)
            attachment.add_header('Content-Disposition', 'attachment', filename = filename)
            msg.attach(attachment)

Ответы (1 шт):

Автор решения: proritsatel

Я частично решил проблему используя декоратор. Почему я говорю частично - проблема в том, что при отправке скопом например 4 фотографий, загружается только 3. С чем это связано я не знаю. Надеюсь кому-нибудь поможет.

Это решение сработает только если вы отправляете фото как документ, без сжатия. Если потеря качества не принципиальна, то можно изменить

content_types=['photo']
@bot.message_handler(content_types=['document'])
def handle_docs_photo(message):
    try:
        chat_id = message.chat.id
        file_info = bot.get_file(message.document.file_id)
        downloaded_file = bot.download_file(file_info.file_path)

        src = dir + '\\' + message.document.file_name
        bot.send_message(message.chat.id, src)
        with open(src, 'wb') as new_file:
            new_file.write(downloaded_file)

    except Exception as e:
        bot.reply_to(message, e)
→ Ссылка