1.0.3 • Published 2 years ago
@opengram/media-group v1.0.3
The media-group plugin lets you handle & copy media-groups (albums) with ease.
Features
video,audio,photo,documentsupport- Supports sends copy of a media group
 
Docs
You can find documentation here and examples here and try now here
Installation
NPM
npm i @opengram/media-groupYarn
yarn add @opengram/media-groupPNPM
pnpm add @opengram/media-groupQuick start
const { Opengram } = require('opengram')
const { MediaGroup } = require('@opengram/media-group')
const bot = new Opengram(process.env.BOT_TOKEN) // <-- put your bot token here (https://t.me/BotFather)
const mediaGroup = new MediaGroup()
bot.use(mediaGroup)
bot.on('media_group', async ctx => {
  // ctx.mediaGroup - array of messages
  for (const message of ctx.mediaGroup) {
    console.log(JSON.stringify(message, null, 2)) // Pretty-print media group messages to console
  }
  await ctx.copyMediaGroup(ctx.chat.id) // Copy media-group to current chat
})
bot.launch()
// Enable graceful stop
process.once('SIGINT', () => bot.stop())
process.once('SIGTERM', () => bot.stop())Flowchart
flowchart TB
  U("Incoming update") --> M("Upstream middlewares")
  M --> F("Filter by given update types")
  F --> E("Has media group?")
  E -- No --> N("Nothing to do, run next")
  E -- Yes --> STSAV
  MGLEN --> TO("Wait for <code>timeout</code>")
  TO --> TOE("Timeout expired") --> ACTX
  HV --> U
  ACTX("Add media-group messages\nto <code>ctx.mediaGroup</code> and mark as <code>media_group</code>, run next") --> DM("Downstream middlewares")
  HV("Wait for new media")
  STSAV("Save to store") --> MGLEN("Saved messages count = 10?")
  MGLEN -- No --> HV
  MGLEN -- Yes --> ACTX