96 lines
2.6 KiB
Python
96 lines
2.6 KiB
Python
|
|
# Aiogram imports
|
|||
|
|
from aiogram.utils.keyboard import (
|
|||
|
|
ReplyKeyboardBuilder,
|
|||
|
|
KeyboardButton,
|
|||
|
|
InlineKeyboardBuilder,
|
|||
|
|
)
|
|||
|
|
from aiogram.types import (
|
|||
|
|
ReplyKeyboardMarkup,
|
|||
|
|
InlineKeyboardMarkup,
|
|||
|
|
InlineKeyboardButton,
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_main_menu_kb():
|
|||
|
|
|
|||
|
|
builder = ReplyKeyboardBuilder()
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="📊 Статистика"), KeyboardButton(text="✉️ Рассылка"))
|
|||
|
|
|
|||
|
|
builder.row(
|
|||
|
|
KeyboardButton(text="🚫 Черный список"), KeyboardButton(text="⚙️ Настройки")
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
builder.row(
|
|||
|
|
KeyboardButton(text="📑 Список пользователей"),
|
|||
|
|
KeyboardButton(text="👮♂️ Управление админами"),
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="🔚 Выйти"))
|
|||
|
|
|
|||
|
|
return builder.as_markup(resize_keyboard=True, is_persistent=True)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_add_admins_kb():
|
|||
|
|
|
|||
|
|
builder = ReplyKeyboardBuilder()
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="➕ Добавить"), KeyboardButton(text="➖ Удалить"))
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="↩️ Вернуться в меню"))
|
|||
|
|
|
|||
|
|
return builder.as_markup(resize_keyboard=True, is_persistent=True)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_back_kb():
|
|||
|
|
|
|||
|
|
builder = ReplyKeyboardBuilder()
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="↩️ Назад"))
|
|||
|
|
|
|||
|
|
return builder.as_markup(resize_keyboard=True)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_settings_kb() -> ReplyKeyboardMarkup:
|
|||
|
|
|
|||
|
|
builder = ReplyKeyboardBuilder()
|
|||
|
|
|
|||
|
|
builder.add(KeyboardButton(text="↩️ Вернуться в меню"))
|
|||
|
|
builder.adjust(2)
|
|||
|
|
|
|||
|
|
return builder.as_markup(resize_keyboard=True, is_persistent=True)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_blacklist_kb():
|
|||
|
|
|
|||
|
|
builder = ReplyKeyboardBuilder()
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="👁 Открыть список"))
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="➕ Добавить"), KeyboardButton(text="➖ Удалить"))
|
|||
|
|
|
|||
|
|
builder.row(KeyboardButton(text="↩️ Вернуться в меню"))
|
|||
|
|
|
|||
|
|
return builder.as_markup(resize_keyboard=True, is_persistent=True)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def get_bookList_ikb(
|
|||
|
|
prefix: str, offset: int, max_offset: int, items: list[tuple], element_col: int = 10
|
|||
|
|
) -> InlineKeyboardMarkup:
|
|||
|
|
|
|||
|
|
builder = InlineKeyboardBuilder()
|
|||
|
|
|
|||
|
|
for item_id, item_name in items[offset * element_col : (offset + 1) * element_col]:
|
|||
|
|
builder.row(
|
|||
|
|
InlineKeyboardButton(
|
|||
|
|
text=f"{item_name}", callback_data=f"{prefix}_pick_{item_id}"
|
|||
|
|
)
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
builder.row(
|
|||
|
|
InlineKeyboardButton(text="⬅️", callback_data=f"{prefix}_prev"),
|
|||
|
|
InlineKeyboardButton(text="➡️", callback_data=f"{prefix}_next"),
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
return builder.as_markup()
|