From 8ab308d4b9f1921bb9552f78dba390944541a3b9 Mon Sep 17 00:00:00 2001 From: algizn97 Date: Fri, 22 Aug 2025 13:53:48 +0500 Subject: [PATCH] Added keyboards --- app/telegram/Keyboards/inline_keyboards.py | 97 ++++++++++++++-------- 1 file changed, 63 insertions(+), 34 deletions(-) diff --git a/app/telegram/Keyboards/inline_keyboards.py b/app/telegram/Keyboards/inline_keyboards.py index 8dff646..f4149fb 100644 --- a/app/telegram/Keyboards/inline_keyboards.py +++ b/app/telegram/Keyboards/inline_keyboards.py @@ -1,7 +1,7 @@ from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup -start_markup = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text="🔥 Начать торговлю", callback_data="clb_start_chatbot_message")] +start_markup = InlineKeyboardMarkup(inline_keyboard=[ + [InlineKeyboardButton(text="🔥 Начать торговлю", callback_data="clb_start_chatbot_message")] ]) settings_markup = InlineKeyboardMarkup(inline_keyboard=[ @@ -12,15 +12,15 @@ settings_markup = InlineKeyboardMarkup(inline_keyboard=[ back_btn_profile = [InlineKeyboardButton(text="Назад", callback_data='clb_start_chatbot_message')] special_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text="Основные настройки", callback_data='clb_change_main_settings'), + [InlineKeyboardButton(text="Основные настройки", callback_data='clb_change_main_settings'), InlineKeyboardButton(text="Риск-менеджмент", callback_data='clb_change_risk_management_settings')], - [InlineKeyboardButton(text="Условия запуска", callback_data='clb_change_condition_settings'), + [InlineKeyboardButton(text="Условия запуска", callback_data='clb_change_condition_settings'), InlineKeyboardButton(text="Дополнительные параметры", callback_data='clb_change_additional_settings')], [InlineKeyboardButton(text="Подключить Bybit", callback_data='clb_new_user_connect_bybit_api_message')], - back_btn_profile + back_btn_profile ]) connect_bybit_api_markup = InlineKeyboardMarkup(inline_keyboard=[ @@ -28,17 +28,13 @@ connect_bybit_api_markup = InlineKeyboardMarkup(inline_keyboard=[ ]) trading_markup = InlineKeyboardMarkup(inline_keyboard=[ + [InlineKeyboardButton(text="Настройки", callback_data='clb_settings_message')], + [InlineKeyboardButton(text="Мои сделки", callback_data='clb_my_deals')], [InlineKeyboardButton(text="Указать торговую пару", callback_data='clb_update_trading_pair')], [InlineKeyboardButton(text="Выбрать тип входа", callback_data='clb_update_entry_type')], - [InlineKeyboardButton(text="Мои сделки", callback_data='clb_my_deals')], + [InlineKeyboardButton(text="Начать торговлю", callback_data="clb_start_chatbot_trading")], ]) -open_deal_markup = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text="Открыть сделку", callback_data="clb_open_deal")], -]) - - - entry_order_type_markup = InlineKeyboardMarkup( inline_keyboard=[ [ @@ -48,26 +44,32 @@ entry_order_type_markup = InlineKeyboardMarkup( ] ) -back_btn_list_settings = [InlineKeyboardButton(text="Назад", callback_data='clb_back_to_special_settings_message')] # Кнопка для возврата к списку каталога настроек -back_btn_list_settings_markup = InlineKeyboardMarkup(inline_keyboard=[[InlineKeyboardButton(text="Назад", callback_data='clb_back_to_special_settings_message')]]) # Клавиатура для возврата к списку каталога настроек +back_btn_list_settings = [InlineKeyboardButton(text="Назад", + callback_data='clb_back_to_special_settings_message')] # Кнопка для возврата к списку каталога настроек +back_btn_list_settings_markup = InlineKeyboardMarkup(inline_keyboard=[[InlineKeyboardButton(text="Назад", + callback_data='clb_back_to_special_settings_message')]]) # Клавиатура для возврата к списку каталога настроек back_btn_to_main = [InlineKeyboardButton(text="На главную", callback_data='clb_back_to_main')] +back_to_main = InlineKeyboardMarkup(inline_keyboard=[ + [InlineKeyboardButton(text="На главную", callback_data='back_to_main')], + ]) + main_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text='Режим торговли', callback_data='clb_change_trading_mode'), + [InlineKeyboardButton(text='Режим торговли', callback_data='clb_change_trading_mode'), InlineKeyboardButton(text='Тип маржи', callback_data='clb_change_margin_type')], - [InlineKeyboardButton(text='Размер кредитного плеча', callback_data='clb_change_size_leverage'), + [InlineKeyboardButton(text='Размер кредитного плеча', callback_data='clb_change_size_leverage'), InlineKeyboardButton(text='Начальная ставка', callback_data='clb_change_starting_quantity')], - [InlineKeyboardButton(text='Коэффициент Мартингейла', callback_data='clb_change_martingale_factor'), + [InlineKeyboardButton(text='Коэффициент Мартингейла', callback_data='clb_change_martingale_factor'), InlineKeyboardButton(text='Максимальное кол-во ставок', callback_data='clb_change_maximum_quantity')], - back_btn_list_settings, + back_btn_list_settings, back_btn_to_main ]) risk_management_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text='Изм. цены прибыли', callback_data='clb_change_price_profit'), + [InlineKeyboardButton(text='Изм. цены прибыли', callback_data='clb_change_price_profit'), InlineKeyboardButton(text='Изм. цены убытков', callback_data='clb_change_price_loss')], [InlineKeyboardButton(text='Макс. риск на сделку', callback_data='clb_change_max_risk_deal')], @@ -78,15 +80,15 @@ risk_management_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ ]) condition_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text='Триггер', callback_data='clb_change_trigger'), - InlineKeyboardButton(text='Фильтр времени', callback_data='clb_change_filter_time')], + [InlineKeyboardButton(text='Триггер', callback_data='clb_change_trigger'), + InlineKeyboardButton(text='Таймер', callback_data='clb_change_timer')], - [InlineKeyboardButton(text='Фильтр волатильности', callback_data='clb_change_filter_volatility'), + [InlineKeyboardButton(text='Фильтр волатильности', callback_data='clb_change_filter_volatility'), InlineKeyboardButton(text='Внешние сигналы', callback_data='clb_change_external_cues')], - [InlineKeyboardButton(text='Сигналы TradingView', callback_data='clb_change_tradingview_cues'), + [InlineKeyboardButton(text='Сигналы TradingView', callback_data='clb_change_tradingview_cues'), InlineKeyboardButton(text='Webhook URL', callback_data='clb_change_webhook')], - + [InlineKeyboardButton(text='AI - аналитика', callback_data='clb_change_ai_analytics')], back_btn_list_settings, @@ -94,7 +96,7 @@ condition_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ ]) additional_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text='Сохранить шаблон', callback_data='clb_change_save_pattern'), + [InlineKeyboardButton(text='Сохранить шаблон', callback_data='clb_change_save_pattern'), InlineKeyboardButton(text='Автозапуск', callback_data='clb_change_auto_start')], [InlineKeyboardButton(text='Уведомления', callback_data='clb_change_notifications')], @@ -105,10 +107,10 @@ additional_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ trading_mode_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Лонг", callback_data="trade_mode_long"), - InlineKeyboardButton(text="Шорт", callback_data="trade_mode_short")], + InlineKeyboardButton(text="Шорт", callback_data="trade_mode_short")], [InlineKeyboardButton(text="Свитч", callback_data="trade_mode_switch"), - InlineKeyboardButton(text="Смарт", callback_data="trade_mode_smart")], + InlineKeyboardButton(text="Смарт", callback_data="trade_mode_smart")], back_btn_list_settings, back_btn_to_main @@ -116,21 +118,48 @@ trading_mode_markup = InlineKeyboardMarkup(inline_keyboard=[ margin_type_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Изолированный", callback_data="margin_type_isolated"), - InlineKeyboardButton(text="Кросс", callback_data="margin_type_cross")], + InlineKeyboardButton(text="Кросс", callback_data="margin_type_cross")], back_btn_list_settings, back_btn_to_main ]) -trigger_markup = InlineKeyboardMarkup(inline_keyboard=[ # ИЗМЕНИТЬ НА INLINE - [InlineKeyboardButton(text='Ручной', callback_data="clb_trigger_ruchnoy"), InlineKeyboardButton(text='TradingView', callback_data="clb_trigger_tradingview")], - [InlineKeyboardButton(text="Автоматический", callback_data="clb_trigger_auto")] +trigger_markup = InlineKeyboardMarkup(inline_keyboard=[ # ИЗМЕНИТЬ НА INLINE + [InlineKeyboardButton(text='Ручной', callback_data="clb_trigger_ruchnoy"), + InlineKeyboardButton(text='TradingView', callback_data="clb_trigger_tradingview")], + [InlineKeyboardButton(text="Автоматический", callback_data="clb_trigger_auto")] ]) buttons_yes_no_markup = InlineKeyboardMarkup(inline_keyboard=[ # ИЗМЕНИТЬ НА INLINE - [InlineKeyboardButton(text='Да', callback_data="clb_yes"), InlineKeyboardButton(text='Нет', callback_data="clb_yes")] + [InlineKeyboardButton(text='Да', callback_data="clb_yes"), + InlineKeyboardButton(text='Нет', callback_data="clb_yes")] ]) buttons_on_off_markup = InlineKeyboardMarkup(inline_keyboard=[ # ИЗМЕНИТЬ НА INLINE - [InlineKeyboardButton(text='Включить', callback_data="clb_on"), InlineKeyboardButton(text='Выключить', callback_data="clb_off")] -]) \ No newline at end of file + [InlineKeyboardButton(text='Включить', callback_data="clb_on"), + InlineKeyboardButton(text='Выключить', callback_data="clb_off")] +]) + + +def create_trades_inline_keyboard(trades): + buttons = [] + for trade in trades: + symbol = trade['symbol'] if isinstance(trade, dict) else trade.symbol + buttons.append([ + InlineKeyboardButton(text=f"{symbol}", callback_data=f"show_deal_{symbol}") + ]) + return InlineKeyboardMarkup(inline_keyboard=buttons) + + +def create_close_deal_markup(symbol: str) -> InlineKeyboardMarkup: + return InlineKeyboardMarkup(inline_keyboard=[ + [InlineKeyboardButton(text="Закрыть сделку", callback_data=f"close_deal:{symbol}")], + back_btn_to_main + ]) + + +timer_markup = InlineKeyboardMarkup(inline_keyboard=[ + [InlineKeyboardButton(text="Установить таймер", callback_data="clb_set_timer")], + [InlineKeyboardButton(text="Остановить таймер", callback_data="clb_stop_timer")], + back_btn_to_main +])