develop #3
| @@ -1,11 +1,9 @@ | |||||||
| import asyncio | import asyncio | ||||||
| import logging.config | import logging.config | ||||||
| from aiogram import Bot, Dispatcher | from aiogram import Bot, Dispatcher | ||||||
| from aiogram.filters import Command, CommandStart | import app.services.Bybit.functions.bybit_ws as bybit_ws | ||||||
| from aiogram.types import Message | import app.telegram.database.requests as rq | ||||||
|  |  | ||||||
| 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 | ||||||
| @@ -14,7 +12,7 @@ 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 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_1 | ||||||
|  |  | ||||||
| logging.config.dictConfig(LOGGING_CONFIG) | logging.config.dictConfig(LOGGING_CONFIG) | ||||||
| logger = logging.getLogger("main") | logger = logging.getLogger("main") | ||||||
| @@ -22,7 +20,39 @@ logger = logging.getLogger("main") | |||||||
| bot = Bot(token=TOKEN_TG_BOT_1) | bot = Bot(token=TOKEN_TG_BOT_1) | ||||||
| dp = Dispatcher() | dp = Dispatcher() | ||||||
|  |  | ||||||
| async def main(): |  | ||||||
|  | def get_or_create_event_loop() -> asyncio.AbstractEventLoop: | ||||||
|  |     """ | ||||||
|  |     Возвращает текущий активный цикл событий asyncio или создает новый, если его нет. | ||||||
|  |     """ | ||||||
|  |     try: | ||||||
|  |         return asyncio.get_running_loop() | ||||||
|  |     except RuntimeError: | ||||||
|  |         loop = asyncio.new_event_loop() | ||||||
|  |         asyncio.set_event_loop(loop) | ||||||
|  |         return loop | ||||||
|  |  | ||||||
|  |  | ||||||
|  | loop = get_or_create_event_loop() | ||||||
|  | bybit_ws.set_event_loop(loop) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | async def run_ws_for_user(tg_id, message) -> None: | ||||||
|  |     """ | ||||||
|  |     Запускает WebSocket Bybit для пользователя с указанным tg_id. | ||||||
|  |     """ | ||||||
|  |  | ||||||
|  |     api_key = await rq.get_bybit_api_key(tg_id) | ||||||
|  |     api_secret = await rq.get_bybit_secret_key(tg_id) | ||||||
|  |  | ||||||
|  |     await bybit_ws.start_execution_ws(api_key, api_secret, message) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | async def main() -> None: | ||||||
|  |     """ | ||||||
|  |     Основная асинхронная функция запуска бота: | ||||||
|  |     """ | ||||||
|  |  | ||||||
|     await async_main() |     await async_main() | ||||||
|  |  | ||||||
|     dp.include_router(router) |     dp.include_router(router) | ||||||
| @@ -34,6 +64,7 @@ async def main(): | |||||||
|  |  | ||||||
|     await dp.start_polling(bot) |     await dp.start_polling(bot) | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     try: |     try: | ||||||
|         logger.info("Bot is on") |         logger.info("Bot is on") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user