我创建了2个命令处理程序,它们对命令做出反应:/ search和/ myvkplaylist。在他们内部,我创建了文本处理程序来获得答案。但是这个文本处理程序无法在这种情况下切换:用户选择/搜索命令,输入答案,文本处理程序得到正确的答案,但之后,如果用户选择/我的播放列表命令,机器人仍然给出结果/ search命令的第一个文本处理程序。我无法找到错误,但我确信这是一件愚蠢的事。
import telebot
import const
#Подключаюсь к боту
bot = telebot.TeleBot(const.token)
#Поиск по запросу
#Парсим команду серч
@bot.message_handler(commands=["search", "start"])
def handle_command(message):
bot.send_message(message.from_user.id, parse_mode='HTML',
text="<b>What are you looking for?</b> \nFor example: <i>Elton John</i> or <i>Smells like teen spirit</i>")
@bot.message_handler(content_types=["text"])
def handle_text(message2):
# Получаем ссылку на массив плейлиста
const.offs = 0
bot.send_message(message2.chat.id, "It's a search")
#Парсим команду вкплейлиста
@bot.message_handler(commands=["myvkplaylist"])
def handle_command(message):
#Вводное сообщение с запросом айди
bot.send_message(message.from_user.id, parse_mode='HTML',
text="I need your or other person's vk page ID, write it to me <b>(whitout 'id', just numbers)</b>")
#Парсим ответ
@bot.message_handler(content_types=["text"])
def handle_text(message):
#Получаем ссылку на массив плейлиста
const.offs = 0
bot.send_message(message.chat.id, "It's a playlist")
bot.polling(none_stop=True, interval=0)
答案 0 :(得分:0)
好的,我找到了一些东西,它正在使用register_next_step_handler
import telebot
import const
#Подключаюсь к боту
bot = telebot.TeleBot(const.token)
#Поиск по запросу
#Парсим команду серч
@bot.message_handler(commands=["search", "start"])
def searching(search):
answer = bot.send_message(search.from_user.id, "Give search request, name of song etc")
bot.register_next_step_handler(answer, searchanswer)
def searchanswer(search):
answer = search.text
bot.send_message(search.from_user.id, answer + " It's search" )
@bot.message_handler(commands=["vkplaylist"])
def vkplaylist(vkid):
answer = bot.send_message(vkid.from_user.id, "Give vk page id")
bot.register_next_step_handler(answer, vkplaylistanswer)
def vkplaylistanswer(vkid):
answer = vkid.text
bot.send_message(vkid.from_user.id, answer + " It's playlist")
bot.polling(none_stop=True, interval=0)