fortissimus23
@fortissimus23

Как правильно тут сделать клавиатуру для бота телеграмм?

Есть мой кривой бот
import telebot  
import config
TOKEN = 'f'
bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=['all'])
def first(message):
	key = telebot.types.ReplyKeyboardMarkup(True,False)
	key.row('1','2','3','4','5')
	key.row("6","7","8","9","10")
	key.row("11","12","13","14","15")
	key.row("16","17","18","19","20")
	key.row("21","22","23","24","25")
	key.row("26","27","28","29","30")
	key.row("31","32","33","34","35")
	key.row("36","37","38","39","40")
	key.row("41","42","43","44","45")
	key.row("46","47","48","49","50")
	key.row('Back')
	send = bot.send_message(message.from_user.id,'Hi', reply_markup=key)
	bot.register_next_step_handler(send,fo)

def fo(message):
    if message.text in config.numbers:
        print(message.text)
        key = telebot.types.ReplyKeyboardMarkup(True,False)
        keyi = telebot.types.InlineKeyboardMarkup()
        but_1 = telebot.types.InlineKeyboardButton(text='Next ➡️',callback_data='Next')        
        keyi.add(but_1)
        key.row('Back')
        bot.send_message(message.from_user.id,'Number ' + str(message.text),reply_markup = key)
        sen = bot.send_message(message.from_user.id,'Number ' + str(message.text),reply_markup= keyi)
    @bot.callback_query_handler(func=lambda c: True)
    def callback_inline(c):               
        if c.data == 'Next':
            message.text = int(message.text)+1
            print(message.text)
            key = telebot.types.ReplyKeyboardMarkup(True,False)
            keyi = telebot.types.InlineKeyboardMarkup() 
            but_1 = telebot.types.InlineKeyboardButton(text='Next ➡️',callback_data='Next')
            keyi.add(but_1)
            key.row('Back')
            sen = bot.send_message(message.from_user.id,'Number ' + str(message.text),reply_markup = key)
            fk =bot.send_message(message.from_user.id,'test', reply_markup=keyi)
            bot.register_next_step_handler(sen,five)
                               
def five(message):
	key = telebot.types.ReplyKeyboardMarkup(True,False)
	key.row('1','2','3','4','5')
	key.row("6","7","8","9","10")
	key.row("11","12","13","14","15")
	key.row("16","17","18","19","20")
	key.row("21","22","23","24","25")
	key.row("26","27","28","29","30")
	key.row("31","32","33","34","35")
	key.row("36","37","38","39","40")
	key.row("41","42","43","44","45")
	key.row("46","47","48","49","50")
	key.row('Back')
	send = bot.send_message(message.from_user.id,'hi', reply_markup=key)
	bot.register_next_step_handler(send,fo)
if __name__ == '__main__':
    bot.polling(none_stop=True)
, так вот у него есть клавиатура с цифрами, после нажатия выводит Number и выбранная цифра, после нажатия Next(inline) приходит следующее число, но если я нажму Back и в клавиатуре выберу цифру появиться необходимое значение, но если потом нажму next(inline) то появиться следующее число значения до кнопки Back. (Если я выберу 1 нажму next(inline) получу 2, нажму back выберу 5 и нажму next(inline) получу 3 ( как исправить так чтоб если нажму вперед на числе 5( после back)получил 6))
  • Вопрос задан
  • 878 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы