TELEBOT | Как сделать чтобы определенный @bot.callback_query_handler вызывался/отвечал только на определенную команду

Проблема: У меня в коде есть две разные команды которые отвечают за две разные вещи, а так же есть два @bot.callback_query_handler. И изначально первая команда которая была сделана первой вместе с своим @bot.callback_query_handler работают так как должны работать. Но я сделал новую команду которая плюс минус похожа по действиям с первой но это другое. Так вот, когда я вызываю вторую команду она не обращается к второму @bot.callback_query_handler, а к первому из-за чего выходит вообще не то что должно выходить. Я хочу спросить, есть ли возможность сделать так чтобы обозначить этому хэндлеру за какую команду отвечать и как это сделать???

Как происходит проблема: Я вызываю команду /lang отправляется сообщение с кнопками как и должно быть, но после нажатия любой кнопки бот не обращается к cursor.execute("UPDATE users SET lang=? WHERE user_id=?", (lang, user_id)), а уходит к cur.execute( "INSERT INTO users (user_id, nick, tag, lang) VALUES (?, ?, ?, ?)", (callback.from_user.id, nick, tag, selected_lang))

Вот код который отвечает за то что я хочу сделать, а именно вторая команда:

@bot.message_handler(commands=['lang'])
    def set_lang(message):
        markup = types.InlineKeyboardMarkup()
        markup.row(types.InlineKeyboardButton("??RUss", callback_data="RUS"),
                   types.InlineKeyboardButton("??ENng", callback_data="ENG"))

        # Отправляем сообщение об успешном сохранении тега
        bot.send_message(
            message.chat.id, f"Lang/Язык", reply_markup=markup
        )

@bot.callback_query_handler(func=lambda callback: True)
def change_lang(callback):
     chat_id = callback.message.chat.id
     lang = callback.data
     user_id = callback.from_user.id

      try:
          conn, cursor = create_connection()
          cursor.execute("UPDATE users SET lang=? WHERE user_id=?", (lang, user_id))
           conn.commit()

            if lang == "RUS":
                bot.send_message(chat_id,
                                 f"Вы успешно изменили свой язык на: <code>#{lang} </code> \nТеперь можете "
                                 f"использовать команду /profile", parse_mode='HTML'
                                 )
            else:
                bot.send_message(chat_id,
                                 f"U change the language: <code>#{lang} </code> \nNow can use the command /profile",
                                 parse_mode='HTML'
                                 )
        except Exception as e:
            print(f"Произошла ошибка: {e}")
            bot.send_message(chat_id, f"Произошла ошибка: {e}")

А тут первый хэндлер из-за который вызывает мне эту проблему:

def user_tag(message):
    global tag
    bot.delete_message(message.chat.id, message.message_id)
    bot.delete_message(message.chat.id, message.message_id - 1)

    # Удаление символа "#" из начала текста, если он присутствует
    tag = message.text.strip().lstrip('#')

    # Создание клавиатуры с кнопками "RU" и "EN"
    markup = types.InlineKeyboardMarkup()
    markup.row(types.InlineKeyboardButton("??RU", callback_data="RU"),
               types.InlineKeyboardButton("??EN", callback_data="EN"))

    bot.send_message(message.chat.id,
                     f'<b>Ник/Nickname</b>: <code>{nick}</code> \n<b>Тег/Tag</b>: <code>#{tag}</code> '
                     f'\nВыбери язык-Select language',
                     parse_mode='HTML', reply_markup=markup)
    bot.register_next_step_handler(message, user_lang)

@bot.callback_query_handler(func=lambda callback: True)
def callback_message(callback):
    bot.delete_message(callback.message.chat.id, callback.message.message_id)
    chat_id = callback.message.chat.id
    message_id = callback.message.message_id
    selected_lang = callback.data

    try:
        # Вставка данных в базу данных
        conn = sqlite3.connect('profile_info.db')
        cur = conn.cursor()
        cur.execute(
            "INSERT INTO users (user_id, nick, tag, lang) VALUES (?, ?, ?, ?)",
            (callback.from_user.id, nick, tag, selected_lang))
        conn.commit()
        cur.close()
        conn.close()

        # Отправка сообщения с профилем
        if selected_lang == "RU":
            bot.send_message(chat_id,
                             f"<b><u>Ваш профиль</u></b>\n<b>Ник</b>: <code>{nick}</code> \n<b>Тег</b>: <code>#{tag}</code>",
                             parse_mode="HTML")
        else:
            bot.send_message(chat_id,
                             f"<b><u>Your profile</u></b>\n<b>Nickname</b>: <code>{nick}</code> \n<b>Tag</b>: <code>#{tag}</code>",
                             parse_mode="HTML")
    except Exception as e:
        # Обработка ошибок
        bot.send_message(chat_id, f"Произошла ошибка: {e}")
        print(f"Произошла ошибка: {e}")
    # Не нужно отправлять дополнительное сообщение о выбранном языке

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