refactor
Some checks failed
continuous-integration/drone/pr Build is failing

This commit is contained in:
2026-02-17 00:22:42 +09:00
parent ca0c63a89c
commit 0fdad07d82
36 changed files with 4384 additions and 368 deletions

80
src/utils/keyboards.py Normal file
View 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()