Как получить фото от пользователя через pyTelegramBotAPI?

Здравствуйте.
Пытаюсь добиться такой логики от бота Телеграм (использую десктоп версию клиента):
  1. Бот пишет просьбу отправить фото
  2. Пользователь отправляет фото (как с группировкой, так и без группировки)
  3. Бот получает все фото, отправленные пользователем
  4. Только после принятия всех фото, бот отправляет сообщение об успешной операции и передаёт управление следующей функции.


Мой код:
import telebot

bot_token = '1279****77:AAHJDPFJ************KJfLbiI'
bot = telebot.TeleBot(bot_token, parse_mode='html')
photo_list = []

@bot.message_handler(commands=['start'])
def send_welcome(message):
    send = bot.send_message(message.from_user.id, 'Send your pics...')
    bot.register_next_step_handler(send, get_user_pics)
    return

@bot.message_handler(content_types=['photo'])
def get_user_pics(message):
    if message.photo[-1].file_id not in photo_list:
        photo_list.append(message.photo[-1].file_id)
        if len(photo_list) == 1:
            send = bot.send_message(message.from_user.id, "Photos received...")
            bot.register_next_step_handler(send, process_messages())
            return

def process_messages():
    print(photo_list)
    return

bot.polling()


Сейчас, логика работает только если юзер отравляет картинки с группировкой.
Если отправить без группировки (~10 фото), то примерно после 4-той фотки бот пишет, что успешно принял фото и дальше ничего...
Так, как же добиться требуемой логики, вне зависимости от того, группированны ли фото или нет?
  • Вопрос задан
  • 3570 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fedor11
@Fedor11
Python везде)
По идеи с таким кодом бот будет завершать работу после первой фотки....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы