79 lines
3.2 KiB
Python
79 lines
3.2 KiB
Python
from aiogram.types import InlineKeyboardButton
|
|
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
|
from config import INLINE_MODE
|
|
|
|
|
|
def get_profile_keyboard(admin: bool = False) -> InlineKeyboardBuilder:
|
|
"""
|
|
Создает клавиатуру для профиля пользователя.
|
|
|
|
Args:
|
|
admin: Флаг, указывающий, является ли пользователь администратором.
|
|
|
|
Returns:
|
|
InlineKeyboardBuilder: Построитель клавиатуры с кнопками профиля.
|
|
"""
|
|
builder = InlineKeyboardBuilder()
|
|
|
|
# Основные кнопки профиля
|
|
builder.button(text="💰 Баланс", callback_data="balance")
|
|
builder.button(text="🔑 Мои подписки", callback_data="my_subs")
|
|
builder.button(text="💸 Пополнить баланс", callback_data="payment")
|
|
builder.button(text="🎁 Подарки", callback_data="gifts")
|
|
builder.button(text="👥 Пригласить друга", callback_data="invite")
|
|
builder.button(text="📚 Инструкции", callback_data="instructions")
|
|
builder.button(text="🎫 Активировать купон", callback_data="activate_coupon")
|
|
|
|
# Кнопка админ-панели для администраторов
|
|
if admin:
|
|
builder.button(text="⚙️ Админ-панель", callback_data="admin_panel")
|
|
|
|
# Кнопка главного меню
|
|
builder.button(text="🏠 Главное меню", callback_data="main_menu")
|
|
|
|
# Настройка расположения кнопок (2 кнопки в ряд)
|
|
builder.adjust(2)
|
|
|
|
return builder
|
|
|
|
|
|
def get_balance_keyboard() -> InlineKeyboardBuilder:
|
|
"""
|
|
Создает клавиатуру для раздела баланса.
|
|
|
|
Returns:
|
|
InlineKeyboardBuilder: Построитель клавиатуры с кнопками для баланса.
|
|
"""
|
|
builder = InlineKeyboardBuilder()
|
|
|
|
builder.button(text="📊 История баланса", callback_data="balance_history")
|
|
builder.button(text="👤 Личный кабинет", callback_data="profile")
|
|
builder.adjust(1)
|
|
|
|
return builder
|
|
|
|
|
|
def get_invite_keyboard(chat_id: int, referral_link: str) -> InlineKeyboardBuilder:
|
|
"""
|
|
Создает клавиатуру для приглашения друзей.
|
|
|
|
Args:
|
|
chat_id: ID чата пользователя.
|
|
referral_link: Реферальная ссылка.
|
|
|
|
Returns:
|
|
InlineKeyboardBuilder: Построитель клавиатуры с кнопками для приглашений.
|
|
"""
|
|
builder = InlineKeyboardBuilder()
|
|
|
|
if INLINE_MODE:
|
|
builder.button(text="👥 Пригласить друга", switch_inline_query="invite")
|
|
else:
|
|
invite_text = f"\nПриглашаю тебя пользоваться действительно быстрым VPN вместе:\n\n{referral_link}"
|
|
builder.button(text="👥 Пригласить друга", switch_inline_query=invite_text)
|
|
|
|
builder.button(text="👤 Личный кабинет", callback_data="profile")
|
|
builder.adjust(1)
|
|
|
|
return builder
|