Merge pull STCS #2

Merged
Arsen Mirzaev Tatyano-Muradovich merged 7 commits from Pixe1lz/stcs:stable into stable 2025-07-30 14:32:50 +07:00
20 changed files with 893 additions and 129 deletions
Showing only changes of commit e555bfa8fb - Show all commits

View File

@@ -9,7 +9,7 @@ settings_markup = InlineKeyboardMarkup(inline_keyboard=[
[InlineKeyboardButton(text="Запуск", callback_data='clb_start_trading')] [InlineKeyboardButton(text="Запуск", callback_data='clb_start_trading')]
]) ])
back_btn_profile = [InlineKeyboardButton(text="Назад", callback_data='callback_profile')] back_btn_profile = [InlineKeyboardButton(text="Назад", callback_data='clb_start_chatbot_message')]
special_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ special_settings_markup = InlineKeyboardMarkup(inline_keyboard=[
[InlineKeyboardButton(text="Основные настройки", callback_data='clb_change_main_settings'), [InlineKeyboardButton(text="Основные настройки", callback_data='clb_change_main_settings'),

View File

@@ -84,7 +84,7 @@ class User_Risk_Management_Settings(Base):
price_profit = mapped_column(Integer(), default=1) price_profit = mapped_column(Integer(), default=1)
price_loss = mapped_column(Integer(), default=1) price_loss = mapped_column(Integer(), default=1)
max_risk_deal = mapped_column(Integer(), default=1) max_risk_deal = mapped_column(Integer(), default=100)
class User_Condition_Settings(Base): class User_Condition_Settings(Base):
__tablename__ = 'user_condition_settings' __tablename__ = 'user_condition_settings'

View File

@@ -12,14 +12,7 @@ async def start_message(message):
username = f'{message.from_user.first_name} {message.from_user.last_name}' username = f'{message.from_user.first_name} {message.from_user.last_name}'
await message.answer(f""" Привет <b>{username}</b>! 👋 await message.answer(f""" Привет <b>{username}</b>! 👋
Добро пожаловать в чат-робот по трейдингу на Bybit — вашего надежного помощника для анализа рынка и принятия взвешенных решений. Добро пожаловать в чат-робот для автоматизации трейдинга — вашего надежного помощника для анализа рынка и принятия взвешенных решений.
Здесь вы получите:
<b>
📊 Анализ текущих трендов
📈 Инструменты для прогнозирования и оценки рисков
⚡️ Сигналы и рекомендации по сделкам
🔔 Уведомления о важных изменениях и новостях
</b>
""", parse_mode='html', reply_markup=inline_markup.start_markup) """, parse_mode='html', reply_markup=inline_markup.start_markup)
async def profile_message(username, message): async def profile_message(username, message):
@@ -30,8 +23,8 @@ async def profile_message(username, message):
""", parse_mode='html', reply_markup=inline_markup.settings_markup) """, parse_mode='html', reply_markup=inline_markup.settings_markup)
async def check_profile_message(message): async def check_profile_message(message, username):
await message.answer(f'Добро пожаловать {message.from_user.first_name} {message.from_user.last_name}!', reply_markup=reply_markup.base_buttons_markup) await message.answer(f'С возвращением, {username}!', reply_markup=reply_markup.base_buttons_markup)
async def settings_message(message): async def settings_message(message):
await message.edit_text("Выберите что настроить", reply_markup=inline_markup.special_settings_markup) await message.edit_text("Выберите что настроить", reply_markup=inline_markup.special_settings_markup)

View File

@@ -25,9 +25,9 @@ async def main_settings_message(id, message, state):
text = f"""<b>Риск менеджмент</b>, text = f"""<b>Риск менеджмент</b>,
<b>- Процент изменения цены для фиксации прибыли:</b> {data['price_profit']} <b>- Процент изменения цены для фиксации прибыли:</b> {data['price_profit']}%
<b>- Процент изменения цены для фиксации убытков:</b> {data['price_loss']} <b>- Процент изменения цены для фиксации убытков:</b> {data['price_loss']}%
<b>- Максимальный риск на сделку (в % от баланса):</b> {data['max_risk_deal']} <b>- Максимальный риск на сделку (в % от баланса):</b> {data['max_risk_deal']}%
""" """
await message.answer(text=text, parse_mode='html', reply_markup=inline_markup.risk_management_settings_markup) await message.answer(text=text, parse_mode='html', reply_markup=inline_markup.risk_management_settings_markup)

View File

@@ -20,7 +20,6 @@ router = Router()
@router.message(CommandStart()) @router.message(CommandStart())
async def start_message(message: Message): async def start_message(message: Message):
await rq.set_new_user_bybit_api(message.from_user.id) await rq.set_new_user_bybit_api(message.from_user.id)
await func.start_message(message) await func.start_message(message)
@router.message(F.text == "👤 Профиль") @router.message(F.text == "👤 Профиль")
@@ -38,12 +37,19 @@ async def settings_msg(message: Message):
await func.settings_message(message) await func.settings_message(message)
@router.callback_query(F.data == "clb_start_chatbot_message") @router.callback_query(F.data == "clb_start_chatbot_message")
async def clb_func_reg (callback: CallbackQuery): async def clb_profile_msg (callback: CallbackQuery):
user = await rq.check_user(callback.from_user.id) user = await rq.check_user(callback.from_user.id)
if user: username = ''
await callback.message.answer(f'С возвращением, {callback.from_user.username}!', reply_markup=reply_markup.base_buttons_markup)
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:
await func.profile_message(callback.from_user.username, callback.message) await func.profile_message(callback.from_user.username, callback.message)
else: else:
await rq.save_tg_id_new_user(callback.from_user.id) await rq.save_tg_id_new_user(callback.from_user.id)
@@ -53,18 +59,9 @@ async def clb_func_reg (callback: CallbackQuery):
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, callback.message)
await func_additional_settings.reg_new_user_default_additional_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'Регистрация прошла успешно, перейдите в профиль нажав на кнопку!', reply_markup=reply_markup.base_buttons_markup) await callback.message.answer(f'Здравствуйте, {username}!', reply_markup=reply_markup.base_buttons_markup)
await func.profile_message(callback.from_user.username, callback.message) await func.profile_message(username, callback.message)
await callback.answer()
@router.callback_query(F.data == "callback_profile")
async def clb_profile_message (callback: CallbackQuery):
user = await rq.check_user(callback.from_user.id)
if user:
await func.profile_message(callback.from_user.username, callback.message)
await callback.answer() await callback.answer()