forked from kodorvan/stcs
added documentation
This commit is contained in:
@@ -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,16 +43,26 @@ 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:
|
||||||
|
"""
|
||||||
|
Сохраняет API Key во временное состояние FSM,
|
||||||
|
затем запрашивает у пользователя ввод Secret Key.
|
||||||
|
"""
|
||||||
await state.update_data(api_key=message.text)
|
await state.update_data(api_key=message.text)
|
||||||
|
|
||||||
text = 'Отправьте SECRET_KEY ниже'
|
text = 'Отправьте SECRET_KEY ниже'
|
||||||
@@ -61,8 +71,13 @@ 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:
|
||||||
|
"""
|
||||||
|
Сохраняет Secret Key и финализирует регистрацию,
|
||||||
|
обновляет базу данных, устанавливает символ пользователя и очищает состояние.
|
||||||
|
"""
|
||||||
await state.update_data(secret_key=message.text)
|
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)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user