Files
TeleDiffusionBot/bot/keyboards/set_model.py
2023-03-06 22:53:30 +02:00

32 lines
1.1 KiB
Python

from aiogram import types
from bot.db import db, DBTables
from bot.callbacks.factories.set_model import set_model_page, set_model
def get_set_model_keyboard(page: int) -> types.InlineKeyboardMarkup:
models = db[DBTables.config]['models']
navigation_buttons = list()
page = int(page)
if page > 0:
navigation_buttons.append(types.InlineKeyboardButton(
'<',
callback_data=set_model_page.new(page=page - 1)
))
if len([models[i:i + 5] for i in range(0, len(models), 5)]) > page + 1:
navigation_buttons.append(types.InlineKeyboardButton(
'>',
callback_data=set_model_page.new(page=page + 1)
))
models_buttons = [types.InlineKeyboardButton(models[i], callback_data=set_model.new(i)) for i in range(len(models))]
keyboard = types.InlineKeyboardMarkup(row_width=1)
if len(models) > 5:
keyboard.add(*[models_buttons[i:i + 5] for i in range(0, len(models_buttons), 5)][page])
keyboard.row(*navigation_buttons)
else:
keyboard.add(*models_buttons)
return keyboard