Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/realpeha/telegraf-broadcast
Send broadcast messages to all of your bot users/groups/channels for Telegraf.js v3.38 based on Bull Queue
https://github.com/realpeha/telegraf-broadcast
broadcast message-broadcasting telegraf
Last synced: 5 days ago
JSON representation
Send broadcast messages to all of your bot users/groups/channels for Telegraf.js v3.38 based on Bull Queue
- Host: GitHub
- URL: https://github.com/realpeha/telegraf-broadcast
- Owner: RealPeha
- Created: 2020-10-29T14:49:17.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2021-02-22T15:05:57.000Z (over 3 years ago)
- Last Synced: 2024-11-06T14:46:59.426Z (9 days ago)
- Topics: broadcast, message-broadcasting, telegraf
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/telegraf-broadcast
- Size: 52.7 KB
- Stars: 13
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Telegraf Message Broadcast
Send broadcast messages to all of your bot users/groups/channels for [Telegraf.js](https://github.com/telegraf/telegraf/) based on [Bull Queue](https://github.com/OptimalBits/bull)## Installation
Just use npmnpm i telegraf-broadcast --save
or yarnyarn add telegraf-broadcast
## Usage
If you want to make message broadcast in your bot you must have a user database to get their telegram ids.For example
```js
const users = await SomeDB.getAllMyBotUsers()console.log(users)
/*
[
...
{
id: 1234,
username: 'RealPeha'
...
}
...
]
*/const userIds = users.map(user => user.id)
console.log(userIds)
/*
[..., 1234, ...]
*/broadcaster.sendText(userIds, '42')
```## Examples
### Send plain text
```javascript
const { Telegraf } = require('telegraf')
const Broadcaster = require('telegraf-broadcast')const bot = new Telegraf(process.env.BOT_TOKEN)
const broadcaster = new Broadcaster(bot)const userIds = [154674234, 154674235, 154674236, 154674237, 154674239]
bot.start((ctx) => {
broadcaster.sendText(userIds, 'Hello everyone')
})bot.launch()
```### Send copy of the message
```javascript
const userIds = [154674234, 154674235, 154674236, 154674237, 154674239]bot.command('/broadcast', ctx => {
const replyMessage = ctx.message.reply_to_messageif (replyMessage) {
broadcaster.sendMessage(userIds, ctx.chat.id, replyMessage.message_id)
}
})
```### Inject broadcaster to the context
```javascript
const broadcaster = new Broadcaster(bot)bot.use(broadcaster)
// in another file, for example
bot.start((ctx) => {
ctx.broadcaster.sendText([154674234], 'Hello everyone')
})
```