forked from kodorvan/stcs
Update loggers
This commit is contained in:
@@ -1,12 +1,29 @@
|
||||
import app.telegram.database.requests as rq
|
||||
import app.telegram.Keyboards.inline_keyboards as inline_markup
|
||||
|
||||
import logging.config
|
||||
from logger_helper.logger_helper import LOGGING_CONFIG
|
||||
from pybit.unified_trading import HTTP
|
||||
|
||||
import logging
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
logging.config.dictConfig(LOGGING_CONFIG)
|
||||
logger = logging.getLogger("balance")
|
||||
|
||||
async def get_balance(tg_id, message):
|
||||
|
||||
async def get_balance(tg_id: int, message) -> float:
|
||||
"""
|
||||
Асинхронно получает общий баланс пользователя на Bybit.
|
||||
|
||||
Процедура:
|
||||
- Получает API ключ и секрет пользователя из базы данных.
|
||||
- Если ключи не заданы, отправляет пользователю сообщение с предложением подключить платформу.
|
||||
- Создает клиент Bybit с ключами.
|
||||
- Запрашивает общий баланс по типу аккаунта UNIFIED.
|
||||
- Если ответ успешен, возвращает баланс в виде float.
|
||||
- При ошибках API или исключениях логирует ошибку и уведомляет пользователя.
|
||||
|
||||
:param tg_id: int - идентификатор пользователя Telegram
|
||||
:param message: объект сообщения для отправки ответов пользователю
|
||||
:return: float - общий баланс пользователя; 0 при ошибке или отсутствии ключей
|
||||
"""
|
||||
api_key = await rq.get_bybit_api_key(tg_id)
|
||||
secret_key = await rq.get_bybit_secret_key(tg_id)
|
||||
|
||||
@@ -16,7 +33,8 @@ async def get_balance(tg_id, message):
|
||||
)
|
||||
|
||||
if api_key == 'None' or secret_key == 'None':
|
||||
await message.answer('⚠️ Подключите платформу для торговли', reply_markup=inline_markup.connect_bybit_api_markup)
|
||||
await message.answer('⚠️ Подключите платформу для торговли',
|
||||
reply_markup=inline_markup.connect_bybit_api_markup)
|
||||
return 0
|
||||
|
||||
try:
|
||||
@@ -25,9 +43,10 @@ async def get_balance(tg_id, message):
|
||||
total_balance = response['result']['list'][0].get('totalWalletBalance', '0')
|
||||
return total_balance
|
||||
else:
|
||||
logger.error(f"Ошибка API: {response.get('retMsg')}")
|
||||
await message.answer(f"⚠️ Ошибка API: {response.get('retMsg')}")
|
||||
return 0
|
||||
except Exception as e:
|
||||
logging.error(f"Ошибка при получении общего баланса: {e}")
|
||||
logger.error(f"Ошибка при получении общего баланса: {e}")
|
||||
await message.answer('⚠️ Ошибка при получении баланса')
|
||||
return 0
|
||||
return 0
|
||||
|
Reference in New Issue
Block a user