Дублирование сообщений telegram bot. node-telegram-bot-api
Не могу понять как решить проблему с дублированием сообщений. Может нужно ставить bot.bot.removeListener('message', msg) перед запуском /start, но это не привело меня к желаемому результату. Помогите, пожалуйста, разобраться.
class Move{
public async start(bot: any){
bot.onText(/\/start/, async (msg: any) => {
bot.setMyCommands(commands)
bot.sendMessage(msg.chat.id, '? Егор - ?? разработчик ?ПО с большим стажем️! ?♂️Егор - это ?талантливый специалист, который ?постоянно развивается в своей сфере и ?изучает новые технологии. Егор также ??предан своему делу, что делает его ценным членом ??команды и позволяет создавать ?высококачественные продукты. Егор - это ?профессионал, который стремится к ?совершенству и всегда готов помочь ?своим клиентам достичь их целей. ?', startButton)
bot.on('callback_query', (query: any) => {
switch (query.data){
case "portfolio":
portfolioMove.getMove(bot, msg)
break
case 'about':
aboutMove.getMove(bot, msg);
break;
case "services":
servicesMove.getMove(bot, msg);
break
case "chat":
chatMove.getMove(bot, msg)
break
}
})
})
}
}
export default new Move;
Ответы (1 шт):
Автор решения: PrivetMirmaMa
→ Ссылка
Я решил проблему вот таким способом, не знаю насколько он правильный, но теперь дублирования нет.
class Move{
public async start(bot: any){
const startMsg: any = await new Promise((res: any) => {
for(let elem of [/\/start/, /\/restart/, /Вернуться к главному меню/]){
bot.onText(elem, async (msg: any) => {
bot.setMyCommands(commands)
bot.sendMessage(msg.chat.id, '? Егор - ?? разработчик ?ПО с большим стажем️! ?♂️Егор - это ?талантливый специалист, который ?постоянно развивается в своей сфере и ?изучает новые технологии. Егор также ??предан своему делу, что делает его ценным членом ??команды и позволяет создавать ?высококачественные продукты. Егор - это ?профессионал, который стремится к ?совершенству и всегда готов помочь ?своим клиентам достичь их целей. ?', startButton)
res(msg)
})
}
})
bot.on('callback_query', (query: any) => {
switch (query.data){
case "portfolio":
portfolioMove.getMove(bot, startMsg)
break
case 'about':
aboutMove.getMove(bot, startMsg);
break;
case "services":
servicesMove.getMove(bot, startMsg);
break
case "chat":
chatMove.getMove(bot, startMsg)
break
}
})
}
}
export default new Move;
