TelegramBot. Обработка media group
Отлавливаю все групповые вложения по ID. После того как отловил, необходимо вывести сообщение пользователю.
Я не знаю как определить что вложений больше нет и нужно вывести сообщение пользователю. (каждое вложение в групповом вложении идет как отдельных объект. Т.е., к примеру, 10 вложений, то и будет 10 отдельных объектов. У них одинаковое время отправки и mediaGroupId)
Для обработки каждого сообщения (объекта) создается новый поток.
Ниже кусок кода на языке Java, которым отлавливаю групповые вложения и сохраняю каждое вложение в БД.
case "attachments" -> {
String typeOfAt, file_id, caption;
if (update.message().mediaGroupId() != null) {
if (update.message().photo() != null) {
typeOfAt = "mg_photo";
file_id = update.message().photo()[update.message().photo().length - 1].fileId();
caption = update.message().caption();
// Класс для сохранения вложения в БД
new Attachment(typeOfAt, file_id, Long.parseLong(update.message().mediaGroupId()), caption, chatId).add();
} else if (update.message().video() != null) {
...
} else typeOfAt = "unknown";
if (typeOfAt.equals("unknown")) return;
}
Была идея, ожидать от пользователя иное действие чтобы понять что вложений больше не будет, но опять же нужно отправить в начале только 1 сообщение, которое будет содержать InlineButton (например) или сделать что то подобное(ниже), но в таком случае кнопка всегда будет на виду
