From 39bbe8d997ed5d56b1e86bc6e9fe13c8cfaadb3e Mon Sep 17 00:00:00 2001 From: algizn97 Date: Sun, 9 Nov 2025 13:07:11 +0500 Subject: [PATCH] Added user verification --- app/bybit/profile_bybit.py | 2 +- app/telegram/handlers/handlers_main.py | 66 +++++++++++++++++++++----- 2 files changed, 54 insertions(+), 14 deletions(-) diff --git a/app/bybit/profile_bybit.py b/app/bybit/profile_bybit.py index e5d5e7a..b92f671 100644 --- a/app/bybit/profile_bybit.py +++ b/app/bybit/profile_bybit.py @@ -37,7 +37,7 @@ async def user_profile_bybit(tg_id: int, message: Message, state: FSMContext) -> ) else: await message.answer( - text="Ошибка при подключении, повторите попытку", + text="Ошибка при подключении к платформе. Проверьте ключи и повторите попытку.", reply_markup=kbi.connect_the_platform, ) logger.error("Error processing user profile for user %s", tg_id) diff --git a/app/telegram/handlers/handlers_main.py b/app/telegram/handlers/handlers_main.py index fa5a125..01aa02f 100644 --- a/app/telegram/handlers/handlers_main.py +++ b/app/telegram/handlers/handlers_main.py @@ -85,7 +85,19 @@ async def cmd_to_main(message: Message, state: FSMContext) -> None: None: Exceptions are caught and logged internally. """ try: - await user_profile_tg(tg_id=message.from_user.id, message=message) + await state.clear() + user = await rq.get_user(tg_id=message.from_user.id) + if user: + await user_profile_tg(tg_id=message.from_user.id, message=message) + else: + await rq.create_user( + tg_id=message.from_user.id, username=message.from_user.username + ) + await rq.set_user_symbol(tg_id=message.from_user.id, symbol="BTCUSDT") + await rq.create_user_additional_settings(tg_id=message.from_user.id) + await rq.create_user_risk_management(tg_id=message.from_user.id) + await rq.create_user_conditional_settings(tg_id=message.from_user.id) + await user_profile_tg(tg_id=message.from_user.id, message=message) logger.debug( "Command to_profile_tg processed successfully for user: %s", message.from_user.id, @@ -117,9 +129,21 @@ async def profile_bybit(message: Message, state: FSMContext) -> None: """ try: await state.clear() - await user_profile_bybit( - tg_id=message.from_user.id, message=message, state=state - ) + user = await rq.get_user(tg_id=message.from_user.id) + if user: + await user_profile_bybit( + tg_id=message.from_user.id, message=message, state=state + ) + else: + await rq.create_user( + tg_id=message.from_user.id, username=message.from_user.username + ) + await rq.set_user_symbol(tg_id=message.from_user.id, symbol="BTCUSDT") + await rq.create_user_additional_settings(tg_id=message.from_user.id) + await rq.create_user_risk_management(tg_id=message.from_user.id) + await rq.create_user_conditional_settings(tg_id=message.from_user.id) + await user_profile_bybit( + tg_id=message.from_user.id, message=message, state=state) logger.debug( "Command to_profile_bybit processed successfully for user: %s", message.from_user.id, @@ -150,15 +174,31 @@ async def profile_bybit_callback( """ try: await state.clear() - await user_profile_bybit( - tg_id=callback_query.from_user.id, - message=callback_query.message, - state=state, - ) - logger.debug( - "Callback profile_bybit processed successfully for user: %s", - callback_query.from_user.id, - ) + user = await rq.get_user(tg_id=callback_query.from_user.id) + + if user: + await user_profile_bybit( + tg_id=callback_query.from_user.id, + message=callback_query.message, + state=state, + ) + logger.debug( + "Callback profile_bybit processed successfully for user: %s", + callback_query.from_user.id, + ) + else: + await rq.create_user( + tg_id=callback_query.from_user.id, username=callback_query.from_user.username + ) + await rq.set_user_symbol(tg_id=callback_query.from_user.id, symbol="BTCUSDT") + await rq.create_user_additional_settings(tg_id=callback_query.from_user.id) + await rq.create_user_risk_management(tg_id=callback_query.from_user.id) + await rq.create_user_conditional_settings(tg_id=callback_query.from_user.id) + await user_profile_bybit( + tg_id=callback_query.from_user.id, + message=callback_query.message, + state=state, + ) await callback_query.answer() except Exception as e: logger.error(