diff --git a/app/handlers/menu.py b/app/handlers/menu.py index c67beba8..79946713 100644 --- a/app/handlers/menu.py +++ b/app/handlers/menu.py @@ -19,6 +19,7 @@ async def show_main_menu( db_user: User, db: AsyncSession ): + texts = get_texts(db_user.language) from datetime import datetime @@ -31,15 +32,10 @@ async def show_main_menu( if db_user.subscription: subscription_is_active = db_user.subscription.is_active - subscription_info = "" - if has_active_subscription: - subscription_info = f"📱 Подписка: {_get_subscription_status(db_user, texts)}" - else: - subscription_info = "📱 Подписка: Отсутствует" - menu_text = texts.MAIN_MENU.format( user_name=db_user.full_name, - subscription_info=subscription_info + balance=texts.format_price(db_user.balance_kopeks), + subscription_status=_get_subscription_status(db_user, texts) ) await callback.message.edit_text( @@ -49,8 +45,7 @@ async def show_main_menu( is_admin=settings.is_admin(db_user.telegram_id), has_had_paid_subscription=db_user.has_had_paid_subscription, has_active_subscription=has_active_subscription, - subscription_is_active=subscription_is_active, - balance_kopeks=db_user.balance_kopeks + subscription_is_active=subscription_is_active ) ) await callback.answer() @@ -114,7 +109,7 @@ async def handle_back_to_menu( def _get_subscription_status(user: User, texts) -> str: if not user.subscription: - return "❌ Отсутствует" + return "⌐ Отсутствует" subscription = user.subscription current_time = datetime.utcnow() @@ -142,6 +137,7 @@ def _get_subscription_status(user: User, texts) -> str: else: return f"💎 Активна\n⚠️ истекает сегодня!" + def register_handlers(dp: Dispatcher): dp.callback_query.register( diff --git a/app/handlers/start.py b/app/handlers/start.py index 63b7354a..c53cd208 100644 --- a/app/handlers/start.py +++ b/app/handlers/start.py @@ -146,8 +146,7 @@ async def cmd_start(message: types.Message, state: FSMContext, db: AsyncSession, is_admin=settings.is_admin(user.telegram_id), has_had_paid_subscription=user.has_had_paid_subscription, has_active_subscription=has_active_subscription, - subscription_is_active=subscription_is_active, - balance_kopeks=user.balance_kopeks + subscription_is_active=subscription_is_active ) ) await state.clear() @@ -420,8 +419,7 @@ async def complete_registration_from_callback( is_admin=settings.is_admin(existing_user.telegram_id), has_had_paid_subscription=existing_user.has_had_paid_subscription, has_active_subscription=has_active_subscription, - subscription_is_active=subscription_is_active, - balance_kopeks=existing_user.balance_kopeks + subscription_is_active=subscription_is_active ) ) except Exception as e: diff --git a/app/keyboards/inline.py b/app/keyboards/inline.py index 49d60253..3c1ff14c 100644 --- a/app/keyboards/inline.py +++ b/app/keyboards/inline.py @@ -21,27 +21,20 @@ def get_main_menu_keyboard( is_admin: bool = False, has_had_paid_subscription: bool = False, has_active_subscription: bool = False, - subscription_is_active: bool = False, - balance_kopeks: int = 0 + subscription_is_active: bool = False ) -> InlineKeyboardMarkup: texts = get_texts(language) if settings.DEBUG: - print(f"DEBUG KEYBOARD: language={language}, is_admin={is_admin}, has_had_paid={has_had_paid_subscription}, has_active={has_active_subscription}, sub_active={subscription_is_active}, balance={balance_kopeks}") - - balance_text = texts.format_price(balance_kopeks) if balance_kopeks > 0 else "0.00 ₽" - balance_button_text = f"💰 Баланс: {balance_text}" + print(f"DEBUG KEYBOARD: language={language}, is_admin={is_admin}, has_had_paid={has_had_paid_subscription}, has_active={has_active_subscription}, sub_active={subscription_is_active}") keyboard = [ [ - InlineKeyboardButton(text=balance_button_text, callback_data="menu_balance") + InlineKeyboardButton(text=texts.MENU_BALANCE, callback_data="menu_balance"), + InlineKeyboardButton(text=texts.MENU_SUBSCRIPTION, callback_data="menu_subscription") ] ] - if has_active_subscription: - keyboard.append([ - InlineKeyboardButton(text=texts.MENU_SUBSCRIPTION, callback_data="menu_subscription") - ]) show_trial = not has_had_paid_subscription and not has_active_subscription diff --git a/app/localization/texts.py b/app/localization/texts.py index 6754d3f5..9a540250 100644 --- a/app/localization/texts.py +++ b/app/localization/texts.py @@ -108,6 +108,7 @@ class RussianTexts(Texts): MAIN_MENU = """👤 {user_name} ━━━━━━━━━━━━━━━━━ +💰 Баланс: {balance} 📱 Подписка: {subscription_status} ━━━━━━━━━━━━━━━━━ @@ -125,8 +126,6 @@ class RussianTexts(Texts): MENU_RULES = "📋 Правила сервиса" MENU_LANGUAGE = "🌐 Язык" MENU_ADMIN = "⚙️ Админ-панель" - BALANCE_BUTTON = "💰 Баланс: {balance}" - BALANCE_BUTTON_ZERO = "💰 Баланс: 0.00 ₽" SUBSCRIPTION_NONE = "❌ Нет активной подписки" SUBSCRIPTION_TRIAL = "🎁 Тестовая подписка"