0

尝试使用 pyTelegramBotAPI 构建 Telegram Quiz Bot。我正在使用 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()
4

1 回答 1

1

在这个用例中,您必须使用一种称为有限状态机 (FSM)的东西。您跟踪用户状态,例如用户准备发送答案的状态。

这已经在 pyTelegramBotAPI 中实现,带有next_step_handler()。但是,我建议您改为创建自己的解决方案,因为包装器提供的解决方案非常有问题。

这是一个示例(您可以翻译页面):https ://groosha.gitbooks.io/telegram-bot-lessons/content/chapter11.html

于 2019-03-13T10:42:34.980 回答