telegraf-ratelimit

2.0.0 • Public • Published

Build Status NPM Version js-standard-style

Telegraf Rate Limit

Rate-limiting middleware for Telegraf (Telegram bot framework).

Installation

$ npm install telegraf-ratelimit

Example

const Telegraf = require('telegraf')
const rateLimit = require('telegraf-ratelimit')
 
// Set limit to 1 message per 3 seconds
const limitConfig = {
  window: 3000,
  limit: 1,
  onLimitExceeded: (ctx, next) => ctx.reply('Rate limit exceeded')
}
const telegraf = new Telegraf(process.env.BOT_TOKEN)
telegraf.use(rateLimit(limitConfig))
telegraf.on('text', (ctx) => ctx.reply('Hello!'))
telegraf.startPolling()
 

API

Options

  • window: how long to keep records of requests in memory in ms (default: 1 second)
  • limit: max number of messages during window (default: 1)
  • keyGenerator: key generator function (context -> any)
  • onLimitExceeded: rate-limit middleware

Default implementation of keyGenerator:

function keyGenerator(ctx) {
  return ctx.from.id
}

Package Sidebar

Install

npm i telegraf-ratelimit

Weekly Downloads

533

Version

2.0.0

License

MIT

Last publish

Collaborators

  • dotcypress