Плагин медиа-групп
Этот плагин собирает mediaGroup
из сообщений (1 вложение = 1 сообщение), используя задержку, если mediaGroupId
присутствует в MessageContext. Далее плагин передает только первое сообщение по цепочке обработчиков с ключом mediaGroup
, содержащим массив всех сообщений этой mediaGroup (включая первое сообщение).
ts
import { Bot } from "gramio";
import { mediaGroup } from "@gramio/media-group";
const bot = new Bot(process.env.BOT_TOKEN as string)
.extend(mediaGroup())
.on("message", async (context) => {
if (!context.mediaGroup) return;
return context.send(
`Подпись из первого сообщения - ${context.caption}. Медиа-группа содержит ${context.mediaGroup.length} вложений`
);
})
.onStart(({ info }) => console.log(`✨ Бот ${info.username} запущен!`));
bot.start();
Установка
bash
npm install @gramio/media-group
bash
yarn add @gramio/media-group
bash
pnpm add @gramio/media-group
bash
bun install @gramio/media-group
Настройка
Вы можете изменить время задержки в миллисекундах, просто указав его при вызове:
typescript
const bot = new Bot(process.env.BOT_TOKEN as string)
.extend(mediaGroup(1000)) // ждём 1 секунду сообщений с mediaGroupId (обновляется с каждым новым сообщением)
.on("message", async (context) => {
if (!context.mediaGroup) return;
return context.send(
`Подпись из первого сообщения - ${context.caption}. Медиа-группа содержит ${context.mediaGroup.length} вложений`
);
})
.onStart(({ info }) => console.log(`✨ Бот ${info.username} запущен!`));
bot.start();
По умолчанию это 150 мс
.