Telegram Quiz Bot с pyTelegramBotAPI

Попытка создать Telegram Quiz Bot с использованием pyTelegramBotAPI. Я использую sched для планирования обработчика сообщений, но я не знаю, как остановить обработчик сообщений и вернуться к моему основному сценарию, который будет планировать следующий раунд.

Пытался использовать тайм-аут, но он не работает!

Мой код:

import telebot
import sched, time

def listen():
    print("Send my your Answer")
    @bot.message_handler(func=lambda message: True, content_types=['text'])
    def command_default(m):
        print(m.text)
    bot.polling()



API_TOKEN = 'xxxx'

s = sched.scheduler(time.time, time.sleep)

bot = telebot.TeleBot(API_TOKEN)

s.enter(50, 1, listen)
s.run()

person Salway    schedule 29.08.2018    source источник


Ответы (1)


В этом случае вы должны использовать нечто, называемое Конечным автоматом (FSM). Вы отслеживаете состояния пользователя, например, когда пользователь готов отправить ответ.

Это уже реализовано в pyTelegramBotAPI с next_step_handler(). . Однако вместо этого я предлагаю вам создать собственное решение, поскольку решение, предоставляемое оболочкой, довольно ошибочно.

Вот пример (вы можете перевести страницу): https://groosha.gitbooks.io/telegram-bot-lessons/content/chapter11.html

person Sergey Ronin    schedule 13.03.2019