forked from kodorvan/stcs
		
	
		
			
				
	
	
		
			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)
 |