Telegram Quiz Bot с pyTelegramBotAPI - PullRequest
       4

Telegram Quiz Bot с pyTelegramBotAPI

0 голосов
/ 29 августа 2018

Попытка собрать бот 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()

1 Ответ

0 голосов
/ 13 марта 2019

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

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

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

...