added documentation

This commit is contained in:
algizn97
2025-08-26 19:10:43 +05:00
parent 73f0c67564
commit d29b4465ad

View File

@@ -7,8 +7,7 @@ import app.telegram.Keyboards.reply_keyboards as reply_markup
import app.telegram.database.requests as rq import app.telegram.database.requests as rq
from aiogram.types import Message, CallbackQuery from aiogram.types import Message, CallbackQuery
# FSM - Механизм состояния from app.states.States import state_reg_bybit_api
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.context import FSMContext from aiogram.fsm.context import FSMContext
logging.config.dictConfig(LOGGING_CONFIG) logging.config.dictConfig(LOGGING_CONFIG)
@@ -16,12 +15,13 @@ logger = logging.getLogger("add_bybit_api")
router_register_bybit_api = Router() router_register_bybit_api = Router()
class state_reg_bybit_api(StatesGroup):
api_key = State()
secret_key = State()
@router_register_bybit_api.callback_query(F.data == 'clb_new_user_connect_bybit_api_message') @router_register_bybit_api.callback_query(F.data == 'clb_new_user_connect_bybit_api_message')
async def info_for_bybit_api_message(callback: CallbackQuery): async def info_for_bybit_api_message(callback: CallbackQuery) -> None:
"""
Отвечает пользователю подробной инструкцией по подключению аккаунта Bybit.
Показывает как создать API ключ и передать его чат-боту.
"""
text = '''<b>Подключение Bybit аккаунта</b> text = '''<b>Подключение Bybit аккаунта</b>
<b>1. Зарегистрируйтесь или войдите в свой аккаунт на Bybit (https://www.bybit.com/).</b> <b>1. Зарегистрируйтесь или войдите в свой аккаунт на Bybit (https://www.bybit.com/).</b>
@@ -43,17 +43,27 @@ async def info_for_bybit_api_message(callback: CallbackQuery):
await callback.answer() await callback.answer()
@router_register_bybit_api.callback_query(F.data == 'clb_new_user_connect_bybit_api') @router_register_bybit_api.callback_query(F.data == 'clb_new_user_connect_bybit_api')
async def add_api_key_message(callback: CallbackQuery, state: FSMContext): async def add_api_key_message(callback: CallbackQuery, state: FSMContext) -> None:
"""
Инициирует процесс добавления API ключа.
Переводит пользователя в состояние ожидания ввода API Key.
"""
await state.set_state(state_reg_bybit_api.api_key) await state.set_state(state_reg_bybit_api.api_key)
text = 'Отправьте KEY_API ниже: ' text = 'Отправьте KEY_API ниже: '
await callback.message.answer(text=text) await callback.message.answer(text=text)
@router_register_bybit_api.message(state_reg_bybit_api.api_key) @router_register_bybit_api.message(state_reg_bybit_api.api_key)
async def add_api_key_and_message_for_secret_key(message: Message, state: FSMContext): async def add_api_key_and_message_for_secret_key(message: Message, state: FSMContext) -> None:
await state.update_data(api_key = message.text) """
Сохраняет API Key во временное состояние FSM,
затем запрашивает у пользователя ввод Secret Key.
"""
await state.update_data(api_key=message.text)
text = 'Отправьте SECRET_KEY ниже' text = 'Отправьте SECRET_KEY ниже'
@@ -61,9 +71,14 @@ async def add_api_key_and_message_for_secret_key(message: Message, state: FSMCon
await state.set_state(state_reg_bybit_api.secret_key) await state.set_state(state_reg_bybit_api.secret_key)
@router_register_bybit_api.message(state_reg_bybit_api.secret_key) @router_register_bybit_api.message(state_reg_bybit_api.secret_key)
async def add_secret_key(message: Message, state: FSMContext): async def add_secret_key(message: Message, state: FSMContext) -> None:
await state.update_data(secret_key = message.text) """
Сохраняет Secret Key и финализирует регистрацию,
обновляет базу данных, устанавливает символ пользователя и очищает состояние.
"""
await state.update_data(secret_key=message.text)
data = await state.get_data() data = await state.get_data()
@@ -73,6 +88,5 @@ async def add_secret_key(message: Message, state: FSMContext):
await state.clear() await state.clear()
await message.answer('Данные добавлены, нажмите на профиль и начните торговлю!', reply_markup=reply_markup.base_buttons_markup) await message.answer('Данные добавлены, нажмите на профиль и начните торговлю!',
reply_markup=reply_markup.base_buttons_markup)