Кнопка дальше и страницы для магазина в Телеграме

Я пишу бота для телеграм и возникла необходимость сделать в боте что-то наподобие страниц и кнопки дальше, пример: для просмотра товаров в категории пользователь нажимает на кнопку Товары ( при нажатии на эту кнопку пользователь сможет увидеть первые 10 названий товаров ) ранее выбранной категории, бот должен отобразить пользователю 10 названий товаров на кнопках, если товаров в категории больше 10, тогда на клавиатуру добавляется кнопка дальше ( с callback_data='КЛЮЧ КАТЕГОРИИ:2' ( 2 - это номер следующей страницы )), чтобы пользователь мог посмотреть другие доступные товары в этой же категории, после нажатия на кнопку дальше должна вызваться эта же функция, которая ранее сгенерировала первые доступные 10 товаров. Если товаров в категории осталось больше 10 начиная с 11-го товара ( так как первые 10 товаров - это первая страница товаров в категории выбранной пользователем ) должна сгенерироваться клавиатура ( с товарами от 11 до 21), также с кнопкой дальше, иначе сгенерироваться клавиатура с оставшимися товарами.

Я написал на листе бумаги свои действия по написанию этого кода так:

Если пользователь перешёл в магазин, выбрал категорию (первая страница):

  1. Получаем товары в категории
  2. Получаем общее количество товаров в категории len(тут словарь с товарами)

--- Если общее количество товаров в категории меньше или равно 10:

---- 1. Проходимся циклом for по общему количеству товаров (тут список) и генерируем клавиатуру без кнопки дальше.

--- Если общее количество товаров в категории больше или равно 11:

---- 1. Проходимся циклом for по общему количеству товаров до 10 и генерируем клавиатуру с кнопкой дальше.

Если пользователь был на первой странице и нажал на кнопку дальше (вторая страница):

---- 1. Получаем товаров в категории

---- 2. Получаем общее количество товаров в категории len(тут словарь с товарами)

---- 3. Получаем товары с 11 до последнего.

--- Если товаров с 11 до последнего товара меньше или равно 21:

---- 1. Генерируем клавиатуру с кнопками, но без кнопки дальше ( следующей страницы для просмотра товаров )

--- Если товаров с 11 до последнего товара больше или равно 22:

---- 1. Генерируем клавиатуру с кнопками и с кнопкой дальше ( следующей страницы для просмотра товаров )

P.s - за это всё должна отвечать одна единственная функция. В качестве ответа ожидаю получить способ как это можно сделать более проще.


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