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