Улучшение взаимодействия и добавление веб-приложения
This commit is contained in:
45
keyboards.py
Normal file
45
keyboards.py
Normal file
@@ -0,0 +1,45 @@
|
||||
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")]
|
||||
])
|
||||
Reference in New Issue
Block a user