Как сделать динамечное сообщение меню в телеграмм боте?
Пишу бота в телеграмме. Делаю сообщение-меню пользовательских настроек - пока что уведомления и гиперник(ник с ссылкой на пользователя). Выносятся все значения настроек из базы данных (0 - выключена, 1 - включена). Хочу сделать, чтобы когда функция была включена, в тексте в сообщении писалось (✅), а когда выключен - (❌), как сделать такую проверку - беспонятия. Мог бы кто нибудь помочь в этом вопросе?
def settings(message):
user_name = message.from_user.id
conn = sqlite3.connect('database.db', check_same_thread=False)
cur = conn.cursor()
keyboard = types.InlineKeyboardMarkup()
notification = types.InlineKeyboardButton(text='Уведомления', callback_data=notification)
nickname_status = types.InlineKeyboardButton(text='Гиперникнейм', callback_data=nickname_status)
keyboard.add(notification, nickname_status)
cur.execute('SELECT notification, nickname_status FROM users WHERE user_id=("%s")' % user_name)
users = cur.fetchall()
conn.commit()
for user in users:
msg = bot.reply_to(message, text=f'Настройки:\n\nУведомления: {user[0]}\nГиперникнейм: {user[1]}', reply_markup=keyboard)
cur.close()
conn.close()
Ответы (1 шт):
Автор решения: ZxNuClear
→ Ссылка
Ну, раз вы получаете статусы из БД в виде 1 и 0, то и выдавайте необходимый текст, согласно полученным статусам, например так:
for user in users:
msg = f'Настройки:\n\nУведомления: {"✅" if user[0] else "❌"}\nГиперникнейм: {"✅" if user[1] else "❌"}'
При notification == 0 и nickname_status == 1 вывод такой получается:
Настройки:
Уведомления: ❌
Гиперникнейм: ✅