This commit is contained in:
80
src/utils/keyboards.py
Normal file
80
src/utils/keyboards.py
Normal file
@@ -0,0 +1,80 @@
|
||||
"""Вспомогательные функции для создания клавиатур"""
|
||||
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
|
||||
|
||||
|
||||
def get_main_reply_keyboard(is_admin: bool = False, is_registered: bool = False) -> ReplyKeyboardMarkup:
|
||||
"""
|
||||
Получить главную обычную клавиатуру с командами
|
||||
|
||||
Args:
|
||||
is_admin: Является ли пользователь администратором
|
||||
is_registered: Зарегистрирован ли пользователь
|
||||
|
||||
Returns:
|
||||
ReplyKeyboardMarkup с кнопками команд
|
||||
"""
|
||||
keyboard = []
|
||||
|
||||
# Первая строка - основные команды
|
||||
row1 = [
|
||||
KeyboardButton(text="🎰 Розыгрыши"),
|
||||
KeyboardButton(text="💬 Чат")
|
||||
]
|
||||
keyboard.append(row1)
|
||||
|
||||
# Вторая строка - дополнительные команды
|
||||
row2 = []
|
||||
if not is_admin and not is_registered:
|
||||
row2.append(KeyboardButton(text="📝 Регистрация"))
|
||||
|
||||
if is_registered or is_admin:
|
||||
row2.append(KeyboardButton(text="🔑 Мой код"))
|
||||
row2.append(KeyboardButton(text="💳 Мои счета"))
|
||||
|
||||
if row2:
|
||||
keyboard.append(row2)
|
||||
|
||||
# Третья строка - справка
|
||||
row3 = [KeyboardButton(text="❓ Справка")]
|
||||
|
||||
# Админские команды
|
||||
if is_admin:
|
||||
row3.append(KeyboardButton(text="⚙️ Админ панель"))
|
||||
|
||||
keyboard.append(row3)
|
||||
|
||||
return ReplyKeyboardMarkup(
|
||||
keyboard=keyboard,
|
||||
resize_keyboard=True,
|
||||
input_field_placeholder="Выберите действие..."
|
||||
)
|
||||
|
||||
|
||||
def get_chat_reply_keyboard() -> ReplyKeyboardMarkup:
|
||||
"""
|
||||
Получить клавиатуру для режима чата
|
||||
|
||||
Returns:
|
||||
ReplyKeyboardMarkup с кнопками управления чатом
|
||||
"""
|
||||
keyboard = [
|
||||
[KeyboardButton(text="🚪 Выйти из чата")],
|
||||
[KeyboardButton(text="🏠 Главное меню")]
|
||||
]
|
||||
|
||||
return ReplyKeyboardMarkup(
|
||||
keyboard=keyboard,
|
||||
resize_keyboard=True,
|
||||
input_field_placeholder="Напишите сообщение или выберите действие..."
|
||||
)
|
||||
|
||||
|
||||
def remove_keyboard() -> ReplyKeyboardMarkup:
|
||||
"""
|
||||
Убрать обычную клавиатуру
|
||||
|
||||
Returns:
|
||||
ReplyKeyboardMarkup с параметром remove_keyboard=True
|
||||
"""
|
||||
from aiogram.types import ReplyKeyboardRemove
|
||||
return ReplyKeyboardRemove()
|
||||
Reference in New Issue
Block a user