• Как определить количество фото в media group (pytelegrambotapi)?

    @AceFridge Автор вопроса
    суть вопроса в том что мне необходимо реализовать следующую логику работы: разные пользователи скидывают в одну группу фотоотчет с указанием в подписи к фото (message.caption) номер объекта к которому относится фотоотчет, в случае, если подписи не было или она содержит неизвестный номер, то бот запрашивает номер, пользователь отвечает следующим сообщением, фотоотчет записывается в БД.

    С отправкой 1 фото без подписи и с подписью всё реализовано и работает без проблем.

    С отправкой группы фото без подписи тоже всё ок - при получении первого же фото из группы пишу в БД документ по номеру медиа группы, запрашиваю номер объекта, затем добавляю туда номер, когда пользователь его даст. Даже если часть фото придет где то между первым фото и выдачей ответа на запрос, то по номеру группы всё равно id файлов попадут в документ в БД.

    Вся сложность с последним возможным состоянием отправки: если юзер кидает группу фото с припиской номера в caption. Проблема заключается в том, что caption при съемке с телефона можно заполнить на первое, второе, третье фото, если делать это между фотографированиями... на все фото можно заполнить хоть разный текст, в клиенте отобразится только последний, а по факту бот получит caption на тех фото, на которые оно заполнялось. Если заполнить caption после выполнения всех фото, то caption придет на последнем фото, при этом бот получает первое сообщение с media_group_id, но без caption. При отправке с ПК такой проблемы нет, закидываешь группу фото, заполняешь подпись, подпись привязывается к первому сообщению в группе.
    Ответ написан
    Комментировать