Package Exports
- telegraf-ratelimit
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (telegraf-ratelimit) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Telegraf Rate Limit
Rate-limiting middleware for Telegraf (Telegram bot framework).
Installation
$ npm install telegraf-ratelimitExample
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
}