telegraf-userbased-ratelimit
v1.0.1
Published
Rate-limiting middleware for Telegraf based on number of users
Downloads
4
Maintainers
Readme
Telegraf Rate Limit
Rate-limiting middleware for Telegraf (Telegram bot framework).
This repository is forked from telegraf/telegraf-ratelimit in order to add limitation based on number of users who are using bot.
Installation
$ npm install telegraf-userbased-ratelimit
Example
const Telegraf = require('telegraf')
const rateLimit = require('telegraf-userbased-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
}