Вам необходимо поддерживать состояние для каждого пользователя, который собирается отправить вам команду /start
и /end
.Вы можете сохранить состояние в хранилище ключей / значений (например, { userid: xxx, end: false }
. Затем вы можете проверять хранилище базы данных при каждой отправке изображения. Пример того, как будет выглядеть ваш код:
bot.onText(/\/start/, msg => {
//saveToDb({chat_id: msg.chat.id, completed: false});
});
bot.onText(/\/end/, msg => {
//saveToDb({chat_id: msg.chat.id, completed: true});
});
bot.on("message", msg => {
// most of this code is just for logical purposes to explain the concept
if (typeof msg.image === "object") {
//const completed = checkDb(msg.chat.id);
if (completed !== true) {
// work with the image
}
}
});
В качестве альтернативы вы можете взглянуть на mau , целью которого является решение этой проблемы. Он хорошо работает с node-telegram-bot-api
, проверьте папку с примерами, чтобы начать работу.