Использую библиотеку nestjs-telegraf, в сцене нужно загрузить файлы. С одним файлом нет проблем, такой вариант работает:
@WizardStep(2)
async step2(
@WizardCtx() ctx: Scenes.WizardContext<UploadContext>,
@Message('document') document,
) {
if (!document) {
await ctx.reply(this.i18n.t('upload.fail'));
return;
}
if (document.file_size > 20 * 1024 * 1024) {
await ctx.reply(this.i18n.t('upload.too_big'));
return;
}
await this.orderService.uploadFile(
ctx.scene.state.orderId,
document.file_id,
document.file_name,
);
await ctx.scene.leave();
}
Когда же нужно загрузить несколько файлов, телеграм разбивает их на отдельные сообщения и возникает ситуация, когда невозможно определить когда выходить из сцены
await ctx.scene.leave()
.
При отправке группы, добавляется
media_group_id
, но он тоже не помогает определить последний файл.
bots:dev: update: {
bots:dev: update_id: 489734832,
bots:dev: message: {
bots:dev: message_id: 923,
bots:dev: from: [Object],
bots:dev: chat: [Object],
bots:dev: date: 1698799634,
bots:dev: media_group_id: '13590397079572762',
bots:dev: document: [Object]
bots:dev: }
bots:dev: },