forked from kodorvan/stcs
Update loggers
This commit is contained in:
@@ -1,24 +1,25 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
import logging.config
|
||||||
from aiogram import Bot, Dispatcher
|
from aiogram import Bot, Dispatcher
|
||||||
from aiogram.filters import Command, CommandStart
|
from aiogram.filters import Command, CommandStart
|
||||||
from aiogram.types import Message
|
from aiogram.types import Message
|
||||||
|
|
||||||
from app.telegram.database.models import async_main
|
from app.telegram.database.models import async_main
|
||||||
|
|
||||||
from app.telegram.handlers.handlers import router
|
from app.telegram.handlers.handlers import router
|
||||||
from app.telegram.functions.main_settings.settings import router_main_settings
|
from app.telegram.functions.main_settings.settings import router_main_settings
|
||||||
from app.telegram.functions.risk_management_settings.settings import router_risk_management_settings
|
from app.telegram.functions.risk_management_settings.settings import router_risk_management_settings
|
||||||
from app.telegram.functions.condition_settings.settings import condition_settings_router
|
from app.telegram.functions.condition_settings.settings import condition_settings_router
|
||||||
from app.services.Bybit.functions.Add_Bybit_API import router_register_bybit_api
|
from app.services.Bybit.functions.Add_Bybit_API import router_register_bybit_api
|
||||||
from app.services.Bybit.functions.functions import router_functions_bybit_trade
|
from app.services.Bybit.functions.functions import router_functions_bybit_trade
|
||||||
|
|
||||||
|
from logger_helper.logger_helper import LOGGING_CONFIG
|
||||||
|
from config import TOKEN_TG_BOT_1, TOKEN_TG_BOT_2, TOKEN_TG_BOT_3
|
||||||
|
|
||||||
from config import TOKEN_TG_BOT
|
logging.config.dictConfig(LOGGING_CONFIG)
|
||||||
|
logger = logging.getLogger("main")
|
||||||
|
|
||||||
from app.telegram.logs import logger
|
bot = Bot(token=TOKEN_TG_BOT_1)
|
||||||
|
|
||||||
bot = Bot(token=TOKEN_TG_BOT)
|
|
||||||
dp = Dispatcher()
|
dp = Dispatcher()
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
@@ -35,6 +36,7 @@ async def main():
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
try:
|
try:
|
||||||
|
logger.info("Bot is on")
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("Bot is off")
|
logger.info("Bot is off")
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
from aiogram import F, Router
|
from aiogram import F, Router
|
||||||
|
import logging.config
|
||||||
|
from logger_helper.logger_helper import LOGGING_CONFIG
|
||||||
import app.telegram.Keyboards.inline_keyboards as inline_markup
|
import app.telegram.Keyboards.inline_keyboards as inline_markup
|
||||||
import app.telegram.Keyboards.reply_keyboards as reply_markup
|
import app.telegram.Keyboards.reply_keyboards as reply_markup
|
||||||
|
|
||||||
@@ -10,6 +11,9 @@ from aiogram.types import Message, CallbackQuery
|
|||||||
from aiogram.fsm.state import State, StatesGroup
|
from aiogram.fsm.state import State, StatesGroup
|
||||||
from aiogram.fsm.context import FSMContext
|
from aiogram.fsm.context import FSMContext
|
||||||
|
|
||||||
|
logging.config.dictConfig(LOGGING_CONFIG)
|
||||||
|
logger = logging.getLogger("add_bybit_api")
|
||||||
|
|
||||||
router_register_bybit_api = Router()
|
router_register_bybit_api = Router()
|
||||||
|
|
||||||
class state_reg_bybit_api(StatesGroup):
|
class state_reg_bybit_api(StatesGroup):
|
||||||
|
@@ -1,12 +1,29 @@
|
|||||||
import app.telegram.database.requests as rq
|
import app.telegram.database.requests as rq
|
||||||
import app.telegram.Keyboards.inline_keyboards as inline_markup
|
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
|
from pybit.unified_trading import HTTP
|
||||||
|
|
||||||
import logging
|
logging.config.dictConfig(LOGGING_CONFIG)
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
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)
|
api_key = await rq.get_bybit_api_key(tg_id)
|
||||||
secret_key = await rq.get_bybit_secret_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':
|
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
|
return 0
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -25,9 +43,10 @@ async def get_balance(tg_id, message):
|
|||||||
total_balance = response['result']['list'][0].get('totalWalletBalance', '0')
|
total_balance = response['result']['list'][0].get('totalWalletBalance', '0')
|
||||||
return total_balance
|
return total_balance
|
||||||
else:
|
else:
|
||||||
|
logger.error(f"Ошибка API: {response.get('retMsg')}")
|
||||||
await message.answer(f"⚠️ Ошибка API: {response.get('retMsg')}")
|
await message.answer(f"⚠️ Ошибка API: {response.get('retMsg')}")
|
||||||
return 0
|
return 0
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"Ошибка при получении общего баланса: {e}")
|
logger.error(f"Ошибка при получении общего баланса: {e}")
|
||||||
await message.answer('⚠️ Ошибка при получении баланса')
|
await message.answer('⚠️ Ошибка при получении баланса')
|
||||||
return 0
|
return 0
|
||||||
|
Reference in New Issue
Block a user