46 lines
2.5 KiB
Python
46 lines
2.5 KiB
Python
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, WebAppInfo
|
||
from config import CONFIG, PLANS
|
||
|
||
def main_keyboard(is_admin: bool = False, has_active_sub: bool = False) -> InlineKeyboardMarkup:
|
||
buttons = []
|
||
|
||
# Web App Button
|
||
if CONFIG["BASE_URL"]:
|
||
buttons.append([InlineKeyboardButton(text="🚀 Открыть приложение", web_app=WebAppInfo(url=CONFIG["BASE_URL"]))])
|
||
|
||
# Если подписки нет (или истекла), показываем кнопку покупки на главном
|
||
if not has_active_sub:
|
||
buttons.append([InlineKeyboardButton(text="🛒 Купить подписку", callback_data="buy_subscription")])
|
||
|
||
buttons.append([InlineKeyboardButton(text="📊 Моя подписка", callback_data="my_subscription")])
|
||
buttons.append([InlineKeyboardButton(text="🎟 Активировать промокод", callback_data="use_promo")])
|
||
buttons.append([InlineKeyboardButton(text="ℹ️ Помощь", callback_data="help")])
|
||
|
||
if is_admin:
|
||
buttons.append([InlineKeyboardButton(text="👑 Админ-панель", callback_data="admin_panel")])
|
||
|
||
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
||
|
||
def plans_keyboard() -> InlineKeyboardMarkup:
|
||
buttons = []
|
||
for plan_id, plan in PLANS.items():
|
||
buttons.append([
|
||
InlineKeyboardButton(
|
||
text=f"{plan['name']} - {plan['price']} ⭐",
|
||
callback_data=f"plan_{plan_id}"
|
||
)
|
||
])
|
||
buttons.append([InlineKeyboardButton(text="◀️ Назад", callback_data="back_to_main")])
|
||
return InlineKeyboardMarkup(inline_keyboard=buttons)
|
||
|
||
def admin_keyboard() -> InlineKeyboardMarkup:
|
||
return InlineKeyboardMarkup(inline_keyboard=[
|
||
[InlineKeyboardButton(text="👥 Управление пользователями", callback_data="admin_users_list")],
|
||
[InlineKeyboardButton(text="📊 Статистика бота", callback_data="admin_stats")],
|
||
[InlineKeyboardButton(text="🖥 Статистика сервера", callback_data="admin_server_stats")],
|
||
[InlineKeyboardButton(text="📢 Рассылка", callback_data="admin_broadcast")],
|
||
[InlineKeyboardButton(text="➕ Добавить инвайт", callback_data="admin_add_invite")],
|
||
[InlineKeyboardButton(text="🏷 Управление промокодами", callback_data="admin_promos")],
|
||
[InlineKeyboardButton(text="◀️ В главное меню", callback_data="back_to_main")]
|
||
])
|