46 lines
2.0 KiB
Python
46 lines
2.0 KiB
Python
import logging.config
|
||
|
||
from aiogram.fsm.context import FSMContext
|
||
from aiogram.types import Message
|
||
|
||
import app.telegram.keyboards.inline as kbi
|
||
import database.request as rq
|
||
from app.bybit.get_functions.get_balance import get_balance
|
||
from app.bybit.logger_bybit.logger_bybit import LOGGING_CONFIG
|
||
|
||
logging.config.dictConfig(LOGGING_CONFIG)
|
||
logger = logging.getLogger("profile_bybit")
|
||
|
||
|
||
async def user_profile_bybit(tg_id: int, message: Message, state: FSMContext) -> None:
|
||
"""Get user profile bybit"""
|
||
try:
|
||
await state.clear()
|
||
wallet = await get_balance(tg_id=tg_id)
|
||
|
||
if wallet:
|
||
balance = wallet.get("totalWalletBalance", "0")
|
||
symbol = await rq.get_user_symbol(tg_id=tg_id)
|
||
if symbol is None:
|
||
await rq.set_user_symbol(tg_id=tg_id, symbol="BTCUSDT")
|
||
await user_profile_bybit(tg_id=tg_id, message=message, state=state)
|
||
else:
|
||
await message.answer(
|
||
text=f"💎Ваш профиль:\n\n"
|
||
f"⚖️ Баланс: {float(balance):,.2f} USD\n"
|
||
f"📊Торговая пара: {symbol}\n\n"
|
||
f"Краткая инструкция:\n"
|
||
f"1. Укажите торговую пару (например: BTCUSDT).\n"
|
||
f"2. В настройках выставьте все необходимые параметры.\n"
|
||
f"3. Нажмите кнопку 'Начать торговлю'.\n",
|
||
reply_markup=kbi.main_menu,
|
||
)
|
||
else:
|
||
await message.answer(
|
||
text="Ошибка при подключении, повторите попытку",
|
||
reply_markup=kbi.connect_the_platform,
|
||
)
|
||
logger.error("Error processing user profile for user %s", tg_id)
|
||
except Exception as e:
|
||
logger.error("Error processing user profile for user %s: %s", tg_id, e)
|