Как изменять inline кнопки при нажатии? Telebot
Хотел сделать так, что бы при нажатии на inline кнопку изменялся ее текст/цвет/Добавлялся смайл. Любой вариант, что бы можно было понять, что кнопка нажата. Можно ли это сделать без интеграции БД? Если нет, то как это реализовать?
def process_trips_step(message):
try:
chat_id = message.chat.id
trips = message.text
user = user_dict[chat_id]
if trips in tripsspisok:
user.trips = trips
markup = types.InlineKeyboardMarkup()
for i in range(len(hobbyspisok)):
itemi = types.InlineKeyboardButton(text = hobbyspisok[i], callback_data= f'h{hobbyspisok[i]}')
markup.add(itemi)
bot.send_message(chat_id, 'Укажитe ваши хобби', reply_markup=markup)
else:
msg = bot.reply_to(message, 'Выберите один из предложенных вариантов')
bot.register_next_step_handler(msg, process_trips_step)
return
except Exception as e:
bot.reply_to(message,
'Что-то сломалось или на стороне сервера произошла ошибка. Напишите /help или /start что бы начать сначала')
print(message.text, 'Код 43')
@bot.callback_query_handler(func = lambda callback: callback.data.startswith('h'))
def process_hobby_step(callback):
try:
chat_id = callback.from_user.id
hobby = callback.data
user = user_dict[chat_id]
user.hobby = hobby
global hobby1
markup = types.InlineKeyboardMarkup()
if hobby == 'hДАЛЕЕ':
for i in range(len(profspisok)):
itemi = types.InlineKeyboardButton(text=profspisok[i], callback_data=f'p{profspisok[i]}')
markup.add(itemi)
bot.send_message(chat_id, 'Кем ты хочешь стать?', reply_markup=markup)
user.hobby = ''
for i in range(len(hobby1)):
if hobby1[i] not in user.hobby:
user.hobby += hobby1[i][1:] + ', '
else:
continue
else:
bot.send_message(chat_id, 'Добавьте еще хобби или Нажмите "Далее"')
hobby1.append(str(hobby))
return
except Exception as e:
bot.send_message(chat_id, 'Что-то сломалось или на стороне сервера произошла ошибка. Напишите /help или /start что бы начать сначала')
print(callback.data)