Определяете размер текста в одном сообщении, пусть будет 10 символов. Предположим, текст лежит в переменной
text
. Строки поддерживают
срезы, ими и пользуемся. В первом сообщении отправляются первые 10 символов:
text[:10]
. К сообщению цепляются две инлайн кнопки, ну для первой то страницы можно и одну просто. В callback_data можно использовать любое удобное значение, главное чтобы было понятно какой срез взять. Можно просто цифры. Для первой страницы в callback_data будет 2. В обработчике нажатия кнопки вызываем метод редактирования Сообщения, в качестве текста передаём новый срез, где в срез от идёт значение чанк*цифра колбэк даты, срез ДО чанк+1*цифра, к сообщению так же редактируется клавиатура, где цифра в кнопке предыдущей страницы становится равной текущей, а в следующей +1. Короче просто срезы и всё
@bot.callback_query_handler(func=lambda call: True)
def callback_query(call):
page = int(call.data)
f = (page-1)*chunk
s = page*chunk
kb = types.InlineKeyboardMarkup()
kb.add(types.InlineKeyboardButton('<', callback_data=page), types.InlineKeyboardButton('>', callback_data=page+1))
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id, text=text[f:s], reply_markup=kb)