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()
|