2016-07-17 18 views
0

Ich erstelle einen Telegram-Bot, der node-telegram-bot-api Paket verwendet. Dieses Paket verwendet EventEmitter3 zum Ausgeben von Ereignissen.EventEmitter Ignoriere nächste Listener, wenn die Bedingungen zutreffen

Ich habe einen Zuhörer, die vor allen anderen Zuhörern ausführt:

Bot.prependListener('message', (msg) => 
    if (CHECK msg.from.id FOR AUTHORIZED USERS == false) { 
     // IGNORE ALL OTHER LISTENERS 
    } 
}); 
‌Bot.onText(/\/start/i, (msg) => { 
    Bot.sendMessage(msg.from.id, `You're an authorized user for sure!`); 
}); 

Wie kann ich die EventEmitter ignorieren alle anderen Zuhörer machen?

Antwort

0

Sie benötigen etwas mit echter Middleware-Unterstützung. Zum Beispiel: Telegraf

const Telegraf = require('telegraf') 
 
const app = new Telegraf(process.env.BOT_TOKEN) 
 

 
app.use((ctx, next) => { 
 
    if(AUTHORIZED_USERS.includes(ctx.from.id)){ 
 
     return next() 
 
    } 
 
}) 
 

 
app.command('/start', (ctx) => ctx.reply('You`re an authorized user for sure!')) 
 
app.startPolling()