From 384c2c4c1c51f02e8a264a22f9ab1cb5edf2236d Mon Sep 17 00:00:00 2001 From: Zakhar Izmaylov Date: Thu, 21 Nov 2024 20:31:24 +0300 Subject: [PATCH] Update text and add view_tariffs --- handlers/coupons.py | 20 +++++++++----------- handlers/donate.py | 6 +++--- handlers/profile.py | 30 +++++++++++++++++++++++++++++- 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/handlers/coupons.py b/handlers/coupons.py index 9c9064e3..a069fca9 100644 --- a/handlers/coupons.py +++ b/handlers/coupons.py @@ -34,8 +34,8 @@ async def handle_activate_coupon( ) await callback_query.message.answer( - "Введите код купона:\n\n" - "Пожалуйста, введите действующий код купона, который вы хотите активировать.", + "🎫 Введите код купона:\n\n" + "📝 Пожалуйста, введите действующий код купона, который вы хотите активировать. 🔑", parse_mode="HTML", reply_markup=builder.as_markup(), ) @@ -58,9 +58,9 @@ async def process_coupon_code(message: types.Message, state: FSMContext): InlineKeyboardButton(text="👤 Личный кабинет", callback_data="view_profile") ) - markup = builder.as_markup() - - await message.answer(activation_result, reply_markup=markup, parse_mode="HTML") + await message.answer( + activation_result, reply_markup=builder.as_markup(), parse_mode="HTML" + ) await state.clear() @@ -79,7 +79,7 @@ async def activate_coupon(user_id: int, coupon_code: str): ) if not coupon_record: - return "❌ Купон не найден или его использование ограничено. Пожалуйста, проверьте код и попробуйте снова." + return "❌ Купон не найден 🚫 или его использование ограничено. 🔒 Пожалуйста, проверьте код и попробуйте снова. 🔍" usage_exists = await conn.fetchrow( """ @@ -90,7 +90,7 @@ async def activate_coupon(user_id: int, coupon_code: str): ) if usage_exists: - return "❌ Вы уже активировали этот купон. Купоны могут быть активированы только один раз." + return "❌ Вы уже активировали этот купон. 🚫 Купоны могут быть активированы только один раз. 🔒" coupon_amount = coupon_record["amount"] @@ -116,13 +116,11 @@ async def activate_coupon(user_id: int, coupon_code: str): ) await update_balance(user_id, coupon_amount) - return f"✅ Купон успешно активирован!\n\nНа ваш баланс добавлено {coupon_amount} рублей." + return f"✅ Купон успешно активирован! 🎉\n\nНа ваш баланс добавлено {coupon_amount} рублей 💰." except Exception as e: logger.error(f"Ошибка при активации купона: {e}") - return ( - "⚠️ Произошла ошибка при активации купона.\nПопробуйте ещё раз позже." - ) + return "⚠️ Произошла ошибка при активации купона! 🔧\nПопробуйте ещё раз позже. 🕒" finally: await conn.close() diff --git a/handlers/donate.py b/handlers/donate.py index 8625b416..0dedc524 100644 --- a/handlers/donate.py +++ b/handlers/donate.py @@ -42,9 +42,9 @@ async def process_donate(callback_query: types.CallbackQuery, state: FSMContext) await bot.send_message( chat_id=callback_query.from_user.id, - text="🌟 Поддержите наш проект!\n\n" - "Каждый донат помогает развивать и улучшать сервис. " - "Мы ценим вашу поддержку и работаем над тем, чтобы сделать наш продукт еще лучше. 💡", + text="🌟 Поддержите наш проект! 💪\n\n" + "💖 Каждый донат помогает развивать и улучшать сервис. " + "🤝 Мы ценим вашу поддержку и работаем над тем, чтобы сделать наш продукт еще лучше. 🚀💡", reply_markup=builder.as_markup(), ) diff --git a/handlers/profile.py b/handlers/profile.py index 817b67c5..39cb3652 100644 --- a/handlers/profile.py +++ b/handlers/profile.py @@ -8,7 +8,7 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder from bot import bot from config import CHANNEL_URL from database import get_balance, get_key_count, get_referral_stats -from handlers.texts import get_referral_link, invite_message_send, profile_message_send +from handlers.texts import get_referral_link, invite_message_send, profile_message_send,RENEWAL_PLANS from logger import logger router = Router() @@ -35,6 +35,9 @@ async def process_callback_view_profile( builder = InlineKeyboardBuilder() builder.row(InlineKeyboardButton(text="📢 Наш канал", url=CHANNEL_URL)) + builder.row( + InlineKeyboardButton(text="💡 Тарифы", callback_data="view_tariffs") + ) builder.row( InlineKeyboardButton(text="➕ Устройство", callback_data="create_key"), InlineKeyboardButton(text="📱 Мои устройства", callback_data="view_keys"), @@ -88,6 +91,31 @@ async def process_callback_view_profile( ) +@router.callback_query(F.data == "view_tariffs") +async def view_tariffs_handler(callback_query: types.CallbackQuery): + try: + await callback_query.message.delete() + except Exception as e: + logger.error(f"Ошибка при удалении сообщения: {e}") + builder = InlineKeyboardBuilder() + builder.row( + InlineKeyboardButton(text="⬅️ Вернуться в профиль", callback_data="view_profile") + ) + + await callback_query.message.answer( + "🚀 Доступные тарифы VPN:\n\n" + + "\n".join([ + f"{months} {'месяц' if months == '1' else 'месяца' if int(months) in [2, 3, 4] else 'месяцев'}: " + f"{RENEWAL_PLANS[months]['price']} " + f"{'💳' if months == '1' else '🌟' if months == '3' else '🔥' if months == '6' else '🚀'} рублей" + for months in sorted(RENEWAL_PLANS.keys(), key=int) + ]), + parse_mode="HTML", + reply_markup=builder.as_markup(), + ) + await callback_query.answer() + + @router.callback_query(F.data == "invite") async def invite_handler(callback_query: types.CallbackQuery): chat_id = callback_query.from_user.id