From 812920f46d6ada279490983128072182459e16cc Mon Sep 17 00:00:00 2001 From: algizn97 Date: Fri, 22 Aug 2025 13:56:56 +0500 Subject: [PATCH] The timer function has been updated --- app/telegram/handlers/handlers.py | 89 +++++++++++++++++++------------ 1 file changed, 54 insertions(+), 35 deletions(-) diff --git a/app/telegram/handlers/handlers.py b/app/telegram/handlers/handlers.py index 48b2a9b..e1cb05f 100644 --- a/app/telegram/handlers/handlers.py +++ b/app/telegram/handlers/handlers.py @@ -5,7 +5,7 @@ from aiogram.filters import CommandStart, Command from aiogram.types import Message, CallbackQuery from aiogram.fsm.context import FSMContext -import app.telegram.functions.functions as func # functions +import app.telegram.functions.functions as func # functions import app.telegram.functions.main_settings.settings as func_main_settings import app.telegram.functions.risk_management_settings.settings as func_rmanagement_settings import app.telegram.functions.condition_settings.settings as func_condition_settings @@ -17,11 +17,13 @@ import app.telegram.Keyboards.reply_keyboards as reply_markup router = Router() + @router.message(CommandStart()) async def start_message(message: Message): await rq.set_new_user_bybit_api(message.from_user.id) await func.start_message(message) + @router.message(F.text == "👤 Профиль") async def profile_message(message: Message): user = await rq.check_user(message.from_user.id) @@ -29,6 +31,7 @@ async def profile_message(message: Message): if user: await func.profile_message(message.from_user.username, message) + @router.message(F.text == "Настройки") async def settings_msg(message: Message): user = await rq.check_user(message.from_user.id) @@ -36,27 +39,29 @@ async def settings_msg(message: Message): if user: await func.settings_message(message) + @router.callback_query(F.data == "clb_start_chatbot_message") -async def clb_profile_msg (callback: CallbackQuery): +async def clb_profile_msg(callback: CallbackQuery): user = await rq.check_user(callback.from_user.id) username = '' - - if callback.from_user.first_name == None: + + if callback.from_user.first_name == None: username = callback.from_user.last_name elif callback.from_user.last_name == None: username = callback.from_user.first_name else: username = f'{callback.from_user.first_name} {callback.from_user.last_name}' - if user: + if user: await func.profile_message(callback.from_user.username, callback.message) else: await rq.save_tg_id_new_user(callback.from_user.id) 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_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_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) @@ -64,25 +69,29 @@ async def clb_profile_msg (callback: CallbackQuery): await func.profile_message(username, callback.message) await callback.answer() - - # Настройки торговли + + +# Настройки торговли @router.callback_query(F.data == "clb_settings_message") -async def clb_settings_msg (callback: CallbackQuery): +async def clb_settings_msg(callback: CallbackQuery): await func.settings_message(callback.message) await callback.answer() + @router.callback_query(F.data == "clb_back_to_special_settings_message") async def clb_back_to_settings_msg(callback: CallbackQuery): await func.settings_message(callback.message) await callback.answer() + @router.callback_query(F.data == "clb_change_main_settings") async def clb_change_main_settings_message(callback: CallbackQuery, state: FSMContext): await func_main_settings.main_settings_message(callback.from_user.id, callback.message, state) - await callback.answer() + await callback.answer() + @router.callback_query(F.data == "clb_change_risk_management_settings") async def clb_change_risk_management_message(callback: CallbackQuery, state: FSMContext): @@ -90,26 +99,31 @@ async def clb_change_risk_management_message(callback: CallbackQuery, state: FSM await callback.answer() + @router.callback_query(F.data == "clb_change_condition_settings") async def clb_change_condition_message(callback: CallbackQuery, state: FSMContext): await func_condition_settings.main_settings_message(callback.from_user.id, callback.message, state) await callback.answer() + @router.callback_query(F.data == "clb_change_additional_settings") async def clb_change_additional_message(callback: CallbackQuery, state: FSMContext): await func_additional_settings.main_settings_message(callback.from_user.id, callback.message, state) await callback.answer() - # Конкретные настройки каталогов -list_main_settings = ['clb_change_trading_mode', - 'clb_change_margin_type', - 'clb_change_size_leverage', - 'clb_change_starting_quantity', - 'clb_change_martingale_factor', + +# Конкретные настройки каталогов +list_main_settings = ['clb_change_trading_mode', + 'clb_change_margin_type', + 'clb_change_size_leverage', + 'clb_change_starting_quantity', + 'clb_change_martingale_factor', 'clb_change_maximum_quantity' -] + ] + + @router.callback_query(F.data.in_(list_main_settings)) async def clb_main_settings_msg(callback: CallbackQuery, state: FSMContext): await callback.answer() @@ -132,11 +146,13 @@ async def clb_main_settings_msg(callback: CallbackQuery, state: FSMContext): logging.error(f"Error callback in main_settings match-case: {e}") -list_risk_management_settings = ['clb_change_price_profit', - 'clb_change_price_loss', - 'clb_change_max_risk_deal', - 'commission_fee', -] +list_risk_management_settings = ['clb_change_price_profit', + 'clb_change_price_loss', + 'clb_change_max_risk_deal', + 'commission_fee', + ] + + @router.callback_query(F.data.in_(list_risk_management_settings)) async def clb_risk_management_settings_msg(callback: CallbackQuery, state: FSMContext): await callback.answer() @@ -153,26 +169,28 @@ async def clb_risk_management_settings_msg(callback: CallbackQuery, state: FSMCo await func_rmanagement_settings.commission_fee_message(callback.message, state) except Exception as e: logging.error(f"Error callback in risk_management match-case: {e}") - - + + list_condition_settings = ['clb_change_trigger', - 'clb_change_filter_time', + 'clb_change_timer', 'clb_change_filter_volatility', 'clb_change_external_cues', 'clb_change_tradingview_cues', 'clb_change_webhook', 'clb_change_ai_analytics' -] + ] + + @router.callback_query(F.data.in_(list_condition_settings)) async def clb_condition_settings_msg(callback: CallbackQuery, state: FSMContext): await callback.answer() - + try: match callback.data: case 'clb_change_trigger': await func_condition_settings.trigger_message(callback.message, state) - case 'clb_change_filter_time': - await func_condition_settings.filter_time_message(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': await func_condition_settings.filter_volatility_message(callback.message, state) case 'clb_change_external_cues': @@ -187,10 +205,12 @@ async def clb_condition_settings_msg(callback: CallbackQuery, state: FSMContext) logging.error(f"Error callback in main_settings match-case: {e}") -list_additional_settings = ['clb_change_save_pattern', - 'clb_change_auto_start', - 'clb_change_notifications', -] +list_additional_settings = ['clb_change_save_pattern', + 'clb_change_auto_start', + 'clb_change_notifications', + ] + + @router.callback_query(F.data.in_(list_additional_settings)) async def clb_additional_settings_msg(callback: CallbackQuery, state: FSMContext): await callback.answer() @@ -205,4 +225,3 @@ async def clb_additional_settings_msg(callback: CallbackQuery, state: FSMContext await func_additional_settings.notifications_message(callback.message, state) except Exception as e: logging.error(f"Error callback in additional_settings match-case: {e}") -