динамические inline кнопки telebot python

Пишу ТГ-бота с помощью библиотеки telebot.

По задумке пользователь вводит текст и этот текст становится названием для кнопки, а её создание приводит к образованию базы данных. Но проблема в том, что названием для кнопки становится именно название файла, а не сообщение.

cd = ''
msg = 'inline_buttons.txt'

@bot.message_handler(content_types=['text'])
def buttons(message):
    if message.text.lower() == 'посмотреть/добавить словари':
        keyboard = types.InlineKeyboardMarkup()
        bot.send_message(message.chat.id, text = 'выбери словарь или напиши название:')
        directory = r'C:\Users\Home\source\repos\bot svalka\bot svalka'
        ext = ('.db')
        for cd in os.listdir(directory):
            if cd.endswith(ext):
                keyboard.add(types.InlineKeyboardButton(cd, callback_data = cd ))
        bot.send_message(message.chat.id, text = 'сейчас у тебя есть:', reply_markup = keyboard)
        bot.register_next_step_handler(message, get_text)
def get_text(message):
     msg = open('inline_buttons.txt', 'w')
     msg.write(message.text)
     msg.close()
     x = message.text
     connection = sqlite3.connect(f'{x}.db')
     cursor = connection.cursor()
     cursor.execute('CREATE TABLE IF NOT EXISTS dict(hanzi TEXT PRIMARY KEY, pinyin TEXT NOT NULL, translation TEXT NOT NULL)')
     connection.commit()
     connection.close()
     bot.send_message(message.chat.id, text = 'готово!')```

Далее, мне нужно как-то сделать отдельный callback_data под каждую кнопку, который будет открывать БД, созданную вместе с кнопкой.

Помимо этого, кнопки вызывают миллион разных ошибок, если перед их нажатием не создать ещё одну кнопку.

cd = ''
msg = 'inline_buttons.txt'

@bot.message_handler(content_types=['text'])
def buttons(message):
    if message.text.lower() == 'посмотреть/добавить словари':
            keyboard = types.InlineKeyboardMarkup()
            bot.send_message(message.chat.id, text = 'выбери словарь или напиши название:')
            directory = r'C:\Users\Home\source\repos\bot svalka\bot svalka'
            ext = ('.db')
            for cd in os.listdir(directory):
                if cd.endswith(ext):
                    keyboard.add(types.InlineKeyboardButton(cd, callback_data = cd ))
            bot.send_message(message.chat.id, text = 'сейчас у тебя есть:', reply_markup = keyboard)
            bot.register_next_step_handler(message, get_text)
    def get_text(message):
         msg = open('inline_buttons.txt', 'w')
         msg.write(message.text)
         msg.close()
         x = message.text
         connection = sqlite3.connect(f'{x}.db')
         cursor = connection.cursor()
         cursor.execute('CREATE TABLE IF NOT EXISTS dict(hanzi TEXT PRIMARY KEY, pinyin TEXT NOT NULL, translation TEXT NOT NULL)')
         connection.commit()
         connection.close()
         bot.send_message(message.chat.id, text = 'готово!')
         
    @bot.callback_query_handler(func=lambda call: True) #болванка, просто для понимания работают ли кнопки вообще    
    def open_bd(call):
        directory = r'C:\Users\Home\source\repos\bot svalka\bot svalka'
        ext = ('.db')
        for files in os.listdir(directory):
            if files.endswith(ext):
                with open(msg) as i:
                    for i in msg:
                        if i in files:
                            print(i)
                            bot.send_message(call.message.chat.id, text = f'словарь{i}')                        

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