Skip to content

Плагин медиа-групп

npmJSRJSR Score

Этот плагин собирает 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 мс.