使用pyTelegramBotAPI的Telegram Quiz Bot

时间:2018-08-29 19:07:05

标签: python telegram

尝试使用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()

1 个答案:

答案 0 :(得分:0)

在这种情况下,您必须使用称为Finite State Machine (FSM)的东西。您可以跟踪用户状态,例如用户准备发送答案的状态。

已经在pyTelegramBotAPI中使用next_step_handler()实现了该功能。但是,我建议您改用自己的解决方案,因为包装程序提供的解决方案有很多bug。

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