2017-07-27 3 views
1

J'ai créé 2 gestionnaires de commandes, ils réagissent aux commandes:/search et/myvkplaylist. À l'intérieur d'eux, j'ai créé des gestionnaires de texte pour obtenir une réponse. Mais ce gestionnaire de texte ne peut pas basculer dans cette situation: L'utilisateur choisit la commande/search, entrez la réponse, le gestionnaire de texte obtient la bonne réponse, mais après, si l'utilisateur choisit/ma commande de playlist, bot donne toujours un résultat du premier texte gestionnaire de/commande de recherche. Je ne peux pas trouver l'erreur, mais je suis sûr que c'est quelque chose de stupide.Impossible de basculer le gestionnaire de texte dans le robot de télégramme api python

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) 

Répondre

0

D'accord, je trouve quelque chose, il travaille avec 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)