29 lines
1.2 KiB
Python
29 lines
1.2 KiB
Python
from aiogram.types import InlineKeyboardButton
|
|
|
|
# Настройка экспорта в модули
|
|
__all__ = ('pagination_btn',)
|
|
|
|
def pagination_btn(action: str,
|
|
page: int = 0,
|
|
total_posts: int = 0,
|
|
bt_page: int = 5) -> list[InlineKeyboardButton]:
|
|
"""
|
|
Создает кнопки для пагинации.
|
|
|
|
:param action: Действие в котором нужна пангинация.
|
|
:param page: Номер начальной страницы, по умолчанию 0.
|
|
:param total_posts: Количество постов.
|
|
:param bt_page: Количество кнопок на одной странице.
|
|
:return: Готовый лист списка инлайн-кнопок.
|
|
"""
|
|
navigation_buttons: list[InlineKeyboardButton] = []
|
|
if page > 0:
|
|
navigation_buttons.append(InlineKeyboardButton(
|
|
text="←", callback_data=f"{action}_page_{page - 1}"
|
|
))
|
|
if (page + 1) * bt_page < total_posts:
|
|
navigation_buttons.append(InlineKeyboardButton(
|
|
text="→", callback_data=f"{action}_page_{page + 1}"
|
|
))
|
|
return navigation_buttons
|