Files
new_lottery_bot/src/utils/keyboards.py
Andrew K. Choi b45fe005b9
Some checks failed
continuous-integration/drone/pr Build is failing
Обновление UI: убрать розыгрыши, переименовать счета, добавить кнопку главная
- Удалена кнопка 'Розыгрыши' из главной клавиатуры
- Переименована кнопка 'Мои счета' -> 'Мои логины'
- Показывается ник пользователя вместо TG_ID в чате
- Добавлена кнопка 'Главная' на все клавиатуры
- Проверка регистрации и сокрытие кнопки регистрации
- Валидация номера телефона при регистрации (проверка на символ '-')
2026-03-07 08:11:10 +09:00

81 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Вспомогательные функции для создания клавиатур"""
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()