forked from FOSS/AutoShop-Djimbo
Initial local state
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
# - *- coding: utf- 8 - *-
|
||||
import math
|
||||
from typing import List
|
||||
|
||||
from aiogram.types import InlineKeyboardButton
|
||||
|
||||
from tgbot.utils.const_functions import ikb
|
||||
|
||||
|
||||
# Генерация пагинации страниц
|
||||
def build_pagination_finl(
|
||||
get_list: List[object],
|
||||
button_data: str,
|
||||
remover: int,
|
||||
) -> List[InlineKeyboardButton]:
|
||||
save_kb = []
|
||||
|
||||
if len(get_list) % 10 == 0:
|
||||
remover_page = len(get_list)
|
||||
else:
|
||||
remover_page = len(get_list) - len(get_list) % 10
|
||||
|
||||
if len(get_list) % 10 == 0 and remover_page == len(get_list):
|
||||
remover_page -= 10
|
||||
|
||||
if remover >= len(get_list): remover -= 10
|
||||
if remover < 0: remover = 0
|
||||
|
||||
if len(get_list) <= 10:
|
||||
...
|
||||
elif len(get_list) > 10 and remover < 10:
|
||||
if len(get_list) > 20:
|
||||
save_kb += [
|
||||
ikb(f"1/{math.ceil(len(get_list) / 10)}", data="..."),
|
||||
ikb("➡️", data=f"{button_data}:{remover + 10}"),
|
||||
ikb("⏩", data=f"{button_data}:{remover_page}"),
|
||||
]
|
||||
else:
|
||||
save_kb += [
|
||||
ikb(f"1/{math.ceil(len(get_list) / 10)}", data="..."),
|
||||
ikb("➡️", data=f"{button_data}:{remover + 10}"),
|
||||
]
|
||||
elif remover + 10 >= len(get_list):
|
||||
if len(get_list) > 20:
|
||||
save_kb += [
|
||||
ikb("⏪", data=f"{button_data}:0"),
|
||||
ikb("⬅️", data=f"{button_data}:{remover - 10}"),
|
||||
ikb(f"{str(remover + 10)[:-1]}/{math.ceil(len(get_list) / 10)}", data="..."),
|
||||
]
|
||||
else:
|
||||
save_kb += [
|
||||
ikb("⬅️", data=f"{button_data}:{remover - 10}"),
|
||||
ikb(f"{str(remover + 10)[:-1]}/{math.ceil(len(get_list) / 10)}", data="..."),
|
||||
]
|
||||
else:
|
||||
if len(get_list) > 20:
|
||||
if remover >= 20:
|
||||
save_kb += [
|
||||
ikb("⏪", data=f"{button_data}:0"),
|
||||
ikb("⬅️", data=f"{button_data}:{remover - 10}"),
|
||||
ikb(f"{str(remover + 10)[:-1]}/{math.ceil(len(get_list) / 10)}", data="..."),
|
||||
ikb("➡️", data=f"{button_data}:{remover + 10}"),
|
||||
]
|
||||
else:
|
||||
save_kb += [
|
||||
ikb("⬅️", data=f"{button_data}:{remover - 10}"),
|
||||
ikb(f"{str(remover + 10)[:-1]}/{math.ceil(len(get_list) / 10)}", data="..."),
|
||||
ikb("➡️", data=f"{button_data}:{remover + 10}"),
|
||||
]
|
||||
|
||||
if remover_page - 10 > remover:
|
||||
save_kb += [
|
||||
ikb("⏩", data=f"{button_data}:{remover_page}"),
|
||||
]
|
||||
else:
|
||||
save_kb += [
|
||||
ikb("⬅️", data=f"{button_data}:{remover - 10}"),
|
||||
ikb(f"{str(remover + 10)[:-1]}/{math.ceil(len(get_list) / 10)}", data="..."),
|
||||
ikb("➡️", data=f"{button_data}:{remover + 10}"),
|
||||
]
|
||||
|
||||
return save_kb
|
||||
Reference in New Issue
Block a user