尝试使用pyTelegramBotAPI构建电报测验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()
答案 0 :(得分:0)
在这种情况下,您必须使用称为Finite State Machine (FSM)的东西。您可以跟踪用户状态,例如用户准备发送答案的状态。
已经在pyTelegramBotAPI中使用next_step_handler()实现了该功能。但是,我建议您改用自己的解决方案,因为包装程序提供的解决方案有很多bug。
以下是一个示例(您可以翻译页面):https://groosha.gitbooks.io/telegram-bot-lessons/content/chapter11.html