@Tomorrow772

Не работает бот телеграмм?

Здравствуйте у меня почему бот игнорирует последние 2 команды.....
С чем это связано?
Хотя они должны работать.....
На первые 3 команды он отвечает, а на остальные 2 он игнорит, но ошибки нету в консоле.....

import telebot

bot = telebot.TeleBot('тут был токен')


@bot.message_handler(commands=['start'])
def start(message):
    bot.reply_to(message, 'стартуем')

@bot.message_handler(commands=['help'])
def helpi(message):
    bot.send_message(message.chat.id, 'список команд:\n/start')

@bot.message_handler(content_types=["text"])
def skye(message):
    if message.text.lower() == 'бот':
    	bot.send_message(message.chat.id, 'Что-то хотели?')

@bot.message_handler(content_types=["text"])
def hello(message):
    if message.text.lower() == 'привет':
    	bot.send_message(message.chat.id, 'привет')

@bot.message_handler(content_types=["text"])
def God(message):
    	if message.text.lower() == 'Пока':
    		bot.send_message(message.chat.id, 'Пока')





bot.polling(none_stop=True)
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
@Onigire
Зачем писать для каждого сообщения отдельный хэндлер? -_-
Почему не так...
@bot.message_handler(content_types=["text"])
def skye(message):
    if message.text.lower() == 'бот':
    	bot.send_message(message.chat.id, 'Что-то хотели?')
    elif message.text.lower() == 'привет':
    	bot.send_message(message.chat.id, 'привет')
    elif message.text.lower() == 'пока':      <-- тут "пока" с маленькой буквы
    	bot.send_message(message.chat.id, 'Пока')

И в последнем хэндлере у тебя лишние отступы стоят.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Потому что хендлеры одинаковые, и работает только первый. Если это просто текст-ответ, то можно поместить все в одну функцию. Если нужно разделить большие участки кода, то имеет смысл проверять контент в хендлере:

@bot.message_handler(func=lambda m: m.text and m.text.lower() == 'привет')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы