This commit is contained in:
algizn97
2025-08-29 11:43:11 +05:00
parent f4ff128236
commit 4245e165bf
2 changed files with 46 additions and 55 deletions

View File

@@ -12,7 +12,9 @@ import app.telegram.functions.condition_settings.settings as func_condition_sett
import app.telegram.functions.additional_settings.settings as func_additional_settings
import app.telegram.database.requests as rq
import app.telegram.Keyboards.reply_keyboards as reply_markup
from app.services.Bybit.functions.balance import get_balance
from app.services.Bybit.functions.bybit_ws import run_ws_for_user
from logger_helper.logger_helper import LOGGING_CONFIG
@@ -26,16 +28,11 @@ router = Router()
async def start_message(message: Message) -> None:
"""
Обработчик команды /start.
Запускает WebSocket для пользователя и инициализирует нового пользователя в БД.
Инициализирует нового пользователя в БД.
Args:
message (Message): Входящее сообщение с командой /start.
"""
from BybitBot_API import run_ws_for_user
tg_id = message.from_user.id
asyncio.create_task(run_ws_for_user(tg_id, message))
logger.info(f"Получение event loop")
await rq.set_new_user_bybit_api(message.from_user.id)
await func.start_message(message)
@@ -50,26 +47,14 @@ async def profile_message(message: Message) -> None:
message (Message): Сообщение с текстом кнопки.
"""
user = await rq.check_user(message.from_user.id)
if user:
tg_id = message.from_user.id
balance = await get_balance(message.from_user.id, message)
if user and balance:
asyncio.create_task(run_ws_for_user(tg_id, message))
logger.info(f"Получение event loop")
await func.profile_message(message.from_user.username, message)
@router.message(F.text == "Настройки")
async def settings_msg(message: Message) -> None:
"""
Обработчик кнопки 'Настройки'.
Проверяет пользователя и отображает меню настроек.
Args:
message (Message): Сообщение с текстом кнопки.
"""
user = await rq.check_user(message.from_user.id)
if user:
await func.settings_message(message)
@router.callback_query(F.data == "clb_start_chatbot_message")
async def clb_profile_msg(callback: CallbackQuery) -> None:
"""
@@ -81,12 +66,12 @@ async def clb_profile_msg(callback: CallbackQuery) -> None:
callback (CallbackQuery): Полученный колбэк.
"""
user = await rq.check_user(callback.from_user.id)
balance = await get_balance(callback.from_user.id, callback.message)
first_name = callback.from_user.first_name or ""
last_name = callback.from_user.last_name or ""
username = f"{first_name} {last_name}".strip() or callback.from_user.username or "Пользователь"
if user:
if user and balance:
await func.profile_message(callback.from_user.username, callback.message)
else:
await rq.save_tg_id_new_user(callback.from_user.id)
@@ -94,13 +79,9 @@ async def clb_profile_msg(callback: CallbackQuery) -> None:
await func_main_settings.reg_new_user_default_main_settings(callback.from_user.id, callback.message)
await func_rmanagement_settings.reg_new_user_default_risk_management_settings(callback.from_user.id,
callback.message)
await func_condition_settings.reg_new_user_default_condition_settings(callback.from_user.id, callback.message)
await func_condition_settings.reg_new_user_default_condition_settings(callback.from_user.id)
await func_additional_settings.reg_new_user_default_additional_settings(callback.from_user.id, callback.message)
await callback.message.answer(f'Здравствуйте, {username}!', reply_markup=reply_markup.base_buttons_markup)
await func.profile_message(username, callback.message)
await callback.answer()
@@ -166,7 +147,7 @@ async def clb_change_condition_message(callback: CallbackQuery, state: FSMContex
callback (CallbackQuery): полученный колбэк.
state (FSMContext): текущее состояние FSM.
"""
await func_condition_settings.main_settings_message(callback.from_user.id, callback.message, state)
await func_condition_settings.main_settings_message(callback.from_user.id, callback.message)
await callback.answer()
@@ -187,6 +168,7 @@ async def clb_change_additional_message(callback: CallbackQuery, state: FSMConte
# Конкретные настройки каталогов
list_main_settings = ['clb_change_trading_mode',
'clb_change_switch_mode',
'clb_change_margin_type',
'clb_change_size_leverage',
'clb_change_starting_quantity',
@@ -210,6 +192,8 @@ async def clb_main_settings_msg(callback: CallbackQuery, state: FSMContext) -> N
match callback.data:
case 'clb_change_trading_mode':
await func_main_settings.trading_mode_message(callback.message, state)
case 'clb_change_switch_mode':
await func_main_settings.switch_mode_enabled_message(callback.message, state)
case 'clb_change_margin_type':
await func_main_settings.margin_type_message(callback.message, state)
case 'clb_change_size_leverage':
@@ -280,7 +264,7 @@ async def clb_condition_settings_msg(callback: CallbackQuery, state: FSMContext)
try:
match callback.data:
case 'clb_change_trigger':
await func_condition_settings.trigger_message(callback.message, state)
await func_condition_settings.trigger_message(callback.from_user.id, callback.message, state)
case 'clb_change_timer':
await func_condition_settings.timer_message(callback.from_user.id, callback.message, state)
case 'clb_change_filter_volatility':