Some checks failed
continuous-integration/drone/pr Build is failing
- Удалена кнопка 'Розыгрыши' из главной клавиатуры - Переименована кнопка 'Мои счета' -> 'Мои логины' - Показывается ник пользователя вместо TG_ID в чате - Добавлена кнопка 'Главная' на все клавиатуры - Проверка регистрации и сокрытие кнопки регистрации - Валидация номера телефона при регистрации (проверка на символ '-')
81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
"""Вспомогательные функции для создания клавиатур"""
|
||
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()
|