diff --git a/.env.example b/.env.example index e2fc368c..a8d57a98 100644 --- a/.env.example +++ b/.env.example @@ -509,6 +509,10 @@ BOT_RUN_MODE=polling # polling, webhook или both CONTESTS_ENABLED=false CONTESTS_BUTTON_VISIBLE=false +# ===== КНОПКА АКТИВАЦИИ ===== +ACTIVATE_BUTTON_VISIBLE=false +# ACTIVATE_BUTTON_TEXT=активировать + # ===== ЕДИНЫЙ ВЕБ-СЕРВЕР ===== WEB_API_ENABLED=false WEB_API_HOST=0.0.0.0 diff --git a/app/config.py b/app/config.py index d6e70776..a87c8dd0 100644 --- a/app/config.py +++ b/app/config.py @@ -239,6 +239,8 @@ class Settings(BaseSettings): # Отключение превью ссылок в сообщениях бота DISABLE_WEB_PAGE_PREVIEW: bool = False + ACTIVATE_BUTTON_VISIBLE: bool = False + ACTIVATE_BUTTON_TEXT: str = "активировать" PAYMENT_BALANCE_DESCRIPTION: str = "Пополнение баланса" PAYMENT_SUBSCRIPTION_DESCRIPTION: str = "Оплата подписки" PAYMENT_SERVICE_NAME: str = "Интернет-сервис" diff --git a/app/handlers/menu.py b/app/handlers/menu.py index a4301d73..cc690071 100644 --- a/app/handlers/menu.py +++ b/app/handlers/menu.py @@ -1223,6 +1223,18 @@ async def get_main_menu_text(user, texts, db: AsyncSession): return base_text +async def handle_activate_button( + callback: types.CallbackQuery, + db_user: User, + db: AsyncSession +): + texts = get_texts(db_user.language) + await callback.answer( + texts.t("ACTIVATION_SUCCESS", "✅ Активация выполнена!"), + show_alert=True, + ) + + def register_handlers(dp: Dispatcher): dp.callback_query.register( @@ -1295,3 +1307,8 @@ def register_handlers(dp: Dispatcher): handle_add_traffic, F.data == "buy_traffic" ) + + dp.callback_query.register( + handle_activate_button, + F.data == "activate_button" + ) diff --git a/app/keyboards/inline.py b/app/keyboards/inline.py index f9db008b..e34f5d29 100644 --- a/app/keyboards/inline.py +++ b/app/keyboards/inline.py @@ -461,6 +461,12 @@ def get_main_menu_keyboard( InlineKeyboardButton(text=texts.MENU_SUPPORT, callback_data="menu_support") ) + # Добавляем кнопку активации + if settings.ACTIVATE_BUTTON_VISIBLE: + paired_buttons.append( + InlineKeyboardButton(text=settings.ACTIVATE_BUTTON_TEXT, callback_data="activate_button") + ) + paired_buttons.append( InlineKeyboardButton( text=texts.t("MENU_INFO", "ℹ️ Инфо"),