как заставить бота telgram прослушивать «нормальные сообщения» после обработки «командных сообщений» - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть телеграмм-бот, который обрабатывает обычный текст, хранит текст, что-то с ним делает и возвращает результат. вывод правильный, но я хочу, чтобы бот по-разному отвечал на командные сообщения типа "/ start" "/ help". Я также успешно достиг этого, дело в том, что, как только / start сделан, например, он производит желаемый вывод, и он продолжает и обрабатывает текст, как если бы он был простым текстом (не желательно в случае команды). Вот пример приведенного ниже кода, например:

@bot.message_handler(commands=['start'])
def send_welcome(message):
    msg = bot.reply_to(message, """\
Hi there, I am Humobot.
What do you want to verify?
""")
    bot.register_next_step_handler(msg,bot.set_update_listener(handle_messages))


##....  similar functions for /help and functions to process the info in message....


def handle_messages(messages):
    for message in messages:
        # Do something with the message
        bot.send_message(chat_id=message.chat.id,
                         text="Hold on Humo is running for you, he is still new and can barely walk")
        process_check_info(message)


bot.set_update_listener(handle_messages)
bot.polling()
bot.enable_save_next_step_handlers(delay=2)
bot.load_next_step_handlers()

bot.polling()

Я чувствую, что проблема в строке bot.register_next_step_handler(msg,bot.set_update_listener(handle_messages)) Моя вызываемая функция - set_update_listener (handle_messages), я не уверен, как сказать боту, просто ждать следующее сообщение, а затем, если это была команда, обработайте его как команду ТОЛЬКО, а если это обычный текст, обработайте его как текст ТОЛЬКО (последняя часть на самом деле работает нормально)

Надеюсь, вопрос ясен.

1 Ответ

0 голосов
/ 17 апреля 2020

Я решил свою проблему после осмотра, и ошибка произошла из-за того, что

bot.set_update_listener(handle_messages)
bot.polling()
bot.enable_save_next_step_handlers(delay=2)
bot.load_next_step_handlers()

пришлось удалить.

...