Add files via upload

This commit is contained in:
Egor
2025-09-03 06:39:35 +03:00
committed by GitHub
parent 9f4e0cf5f8
commit a6bbd8f8fb
4 changed files with 13 additions and 27 deletions

View File

@@ -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"📱 <b>Подписка:</b> {_get_subscription_status(db_user, texts)}"
else:
subscription_info = "📱 <b>Подписка:</b> Отсутствует"
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(

View File

@@ -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:

View File

@@ -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

View File

@@ -108,6 +108,7 @@ class RussianTexts(Texts):
MAIN_MENU = """👤 <b>{user_name}</b>
━━━━━━━━━━━━━━━━━
💰 <b>Баланс:</b> {balance}
📱 <b>Подписка:</b> {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 = "🎁 Тестовая подписка"