Не правильно работа.т if и elif c использованием Telebot Python

Бот в телеграмме, предназначенный для проведения тайного санты. Сам алгоритм работает прекрасно. Однако вместе с библиотекой Telebot происходит, что-то непонятное. Выводит только первое сообщение независимо от полученных данных. `

import telebot


token = 'токен'

bot = telebot.TeleBot(token)

@bot.message_handler(commands=['start'])

def start_message(message):
    sti= open('12367.webp','rb')
    bot.send_sticker(message.chat.id, sti)
    bot.send_message(message.chat.id, 'как тебя зовут? \n\n(<i>Имя Фамилия</i>)',parse_mode='HTML')

@bot.message_handler(content_types=['text'])
def send_text1(message):
    if message.text == 'Рома':
        bot.send_message(message.from_user.id, ' <b>Рома</b>, привет!',parse_mode='HTML')

    elif message.text.lower() ==  'Катя':
        bot.send_message(message.from_user.id, '<b>Екатерина</b>, привет!,parse_mode='HTML')

    elif message.text.lower() ==  'Ксения':
        bot.send_message(message.from_user.id, '<b>Ксюша</b>, привет!,parse_mode='HTML')
    else:
        bot.send_message(message.chat.id, 'Ты уверен? \n\n Ты точно написал свое имя правильно?')


bot.polling(none_stop=True)

`

При замене elif на if, выводит все 3 за раз. При отдельной функции для каждого человека программа не работает алгоритм проверял без библиотеки, он рабочий, не работает из-зща Telebot, а как чинить не знаю, прошу помочь, т.к. сроки горят.


Ответы (1 шт):

Автор решения: Xander

Смотрите, в первом случае вы проверяете такое условие:

if message.text == 'Рома':

и здесь всё хорошо. А вот в двух других случаях ваши условия выглядят иначе:

elif message.text.lower() ==  'Катя':

elif message.text.lower() ==  'Ксения':

Здесь вы приводите введёный пользователем текст к нижнему регистру, прежде чем сравнить его. Соответственно, в нём уже не осталось никаких заглавных букв, и вне зависимости от того, что ввёл пользователь, получившаяся строка никогда не будет равны ни "Катя" (с заглавной буквой), ни "Ксения" (тоже с заглавной буквой). И эти два условия не сработают никогда.

→ Ссылка