Как принять несколько фото?

Хочу принять n-фоток из сообщения и сохранить их под id телеграм юзера. Все гут, но пока работает с 1-й фоткой. Гружу 10-фоток, и оно ассинхронно получает их. Я загрузил 10 фоток - и в методе photo_make_photo_step я вижу только 2штуки, так как другие не успели подгрузиться. Как обойти это? Библиотека pytelegrambotapi

msg = bot.send_message(message.chat.id, 'Сделайте фотографии. Как завершите - нажмите Далее⏭️', reply_markup = ok_cancel_menu)
        bot.register_next_step_handler(msg, photo_make_photo_step)

def photo_make_photo_step(message):

    if message.content_type=='photo':
        fileID = message.photo[-1].file_id
        file_info = bot.get_file(fileID)
        downloaded_file = bot.download_file(file_info.file_path)

        with open(fileID+".jpg", 'wb') as new_file:
            new_file.write(downloaded_file)
        user.photos.append(fileID+".jpg")
        msg = bot.send_message(message.chat.id, 'Добавьте ещё фото или нажмите Далее если закончили выбор')
        bot.register_next_step_handler(msg, photo_bind_photo_step)
        return
    msg = bot.send_message(message.chat.id, 'Введите номер объекта', reply_markup = cancel_menu)
    bot.register_next_step_handler(msg, vvedi_nomer_objecta_step)

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

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

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

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

content_types=['document']
# на
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)

→ Ссылка