1
0
forked from kodorvan/stcs

Update loggers

This commit is contained in:
algizn97
2025-08-23 14:31:45 +05:00
parent c7da20d577
commit 1ec9732607
3 changed files with 41 additions and 16 deletions

View File

@@ -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")

View File

@@ -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):

View File

@@ -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