@twink132

Как совместить методы send_photo и send_MediaGroup?

Разрабатываю бота, который пересылает сообщение пользователей в нужный канал в зависимости от выбранного филиала
код необходимой функции:
@bot.message_handler(content_types = ['photo', 'text']) ## обработчик данных фото и текста инициализация
def echo(message): ##функция отправляющая сообщения
    u = mapUser(message.from_user)
    user = fetchUser(u)
    if user == False:
        return
    channel = mrfToChannels[user.MRF] 
    chat_id = channel.channel_chat_id
    if message.text == "/start" or message.text == "/Analytics":
        bot.send_message(message.chat.id, "<b>ОШИБКА:</b> Отправка команды <b>/start</b> в канал запрещена.", 
        parse_mode="HTML")
        bot.send_message(message.chat.id, 
        "Попробуйте снова по следующей инструкции:\n1. Введите команду <b>/start</b>, ожидайте сообщение-привествие\n2. Пишите свое обращение, приклепляйте фото по необходимости", 
        parse_mode="HTML")
        return
    else: 

        if(message.caption): 
            caption = message.caption + "\n\nЗапрос от монтера - #" + u.fullname()
        else:
            caption = "\n\nЗапрос от монтера - #" + u.fullname()

        if message.content_type == 'photo': 
            photo_id = message.photo[-1].file_id
            sendedMessage = bot.send_photo(chat_id, photo_id, caption)
        elif message.content_type == 'text':
            sendedMessage = bot.send_message(chat_id, text=message.text + "\n\nЗапрос от монтера - #" + u.fullname())


Возникают ситуации когда пользователь вместо 1 фотографии, отправляет несколько (до 10 шт)
Каким образом можно это отследить и если такое событие наступило, как правильно реализовать данный метод так, чтобы подпись к фото который задал пользователь также передалось в канал и при этом оставалась приписка Запрос от монтера - #" + u.fullname
На данный момент при отправке нескольких фотографий, бот отправляет их несколькими постами. Нужно чтобы отправлялось именно одним постом.
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
@MaxKra1985
разработчик java, python
Бот видит группу фотографий различными сообщениями, но при этом у них есть media_group_id со значением общим для всех сообщений из группы.
Более того - они могу приходить с интервалом, если размер большой или интернет медленный.
Единственный вариант который я вижу - сохранять все сообщения в БД, а через 10 сек проверять сколько сообщений по этой группе есть и отправлять их уже вместе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы