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))
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 140 000 до 180 000 руб.
Константа Москва
от 140 000 до 220 000 руб.
Mtrading Санкт-Петербург
от 2 000 до 3 000 usd.