вова помоги

This commit is contained in:
unknown
2025-12-01 12:50:24 +03:00
parent 76daf3244f
commit 94df5ee9a5
7 changed files with 969 additions and 292 deletions

View File

@@ -5,6 +5,8 @@ import logging
from instences.config import BASE_URL_FASTAPI
import aiohttp
from keyboard.keyboards import main_keyboard
from aiogram.enums.parse_mode import ParseMode
from .referrals import _build_referral_text
router = Router()
logger = logging.getLogger(__name__)
@@ -25,7 +27,8 @@ async def call_api(method, endpoint, data=None):
async with aiohttp.ClientSession() as session:
async with session.request(method, url, json=data) as response:
logger.info(
f"Получен ответ от {url}: статус {response.status}")
f"Получен ответ от {url}: статус {response.status}"
)
if response.status in {200, 201}:
result = await response.json()
@@ -35,7 +38,8 @@ async def call_api(method, endpoint, data=None):
logger.debug(f"Код {response.status}, возвращаю ничего")
return None
logger.error(
f"Ошибка в запросе: статус {response.status}, причина {response.reason}")
f"Ошибка в запросе: статус {response.status}, причина {response.reason}"
)
return "ERROR"
except Exception as e:
logger.exception(f"Исключение при выполнении запроса к {url}: {e}")
@@ -43,18 +47,11 @@ async def call_api(method, endpoint, data=None):
def _welcome_text(username: str | None) -> str:
uname = username or "птенец"
return (
f"🪽 Добро пожаловать в Lark VPN, {uname}!\n\n"
"Здесь ты получаешь стабильный доступ к TikTok, YouTube, Discord, Instagram "
"и другим сервисам без ограничений.\n\n"
"1⃣ Пополни баланс\n"
"2⃣ Выбери подходящий тариф\n"
"3⃣ Подключай конфиг на своих устройствах и забудь про блокировки.\n\n"
"Следи за акциями и розыгрышами в канале:\n"
"https://t.me/+0z5xqn3F1m02OTJi\n\n"
"Lark держит связь. 🐣🦅"
)
"""
Текст приветствия в /start и в главном меню.
Имя пока не используем — оставляем сигнатуру на будущее.
"""
return "🥚 Lark Security\n\nВыберите действие из меню ниже."
@router.message(Command("start"))
@@ -72,8 +69,13 @@ async def start_command(message: Message):
user_data = await call_api("GET", f"/user/{message.from_user.id}")
if not user_data:
logger.debug(
"Пользователь не найден в базе, создаем новую запись.")
await call_api("POST", "/user/create", {"telegram_id": message.from_user.id})
"Пользователь не найден в базе, создаем новую запись."
)
await call_api(
"POST",
"/user/create",
{"telegram_id": message.from_user.id},
)
logger.debug("Отправка приветственного сообщения пользователю.")
await message.answer(
@@ -89,6 +91,28 @@ async def start_command(message: Message):
await message.answer("Произошла ошибка. Попробуйте позже.")
@router.message(Command("referrals"))
async def referrals_menu_command(message: Message):
"""
Команда /referrals из бокового меню Telegram.
Показывает текст реферальной программы.
"""
logger.info(
f"Получена команда /referrals от пользователя: "
f"{message.from_user.id} ({message.from_user.username})"
)
try:
text = await _build_referral_text(message.bot, message.from_user.id)
await message.answer(text, parse_mode=ParseMode.HTML)
logger.info("Реферальная программа отправлена пользователю.")
except Exception as e:
logger.exception(
f"Ошибка при обработке команды /referrals для пользователя "
f"{message.from_user.id}: {e}"
)
await message.answer("Произошла ошибка. Попробуйте позже.")
@router.callback_query(lambda callback: callback.data == "base")
async def start_callback_handler(callback: CallbackQuery):
"""