Stage 03.3 - exchangeInfo and symbol validation
This commit is contained in:
@@ -25,20 +25,33 @@ class SystemSnapshot:
|
||||
timezone_name: str
|
||||
exchange_enabled: bool
|
||||
exchange_name: str
|
||||
default_symbol: str
|
||||
symbol_validation_message: str
|
||||
components: list[ComponentStatus]
|
||||
|
||||
|
||||
def get_system_snapshot() -> SystemSnapshot:
|
||||
settings = load_settings()
|
||||
exchange_service = ExchangeService()
|
||||
|
||||
try:
|
||||
symbol_validation = exchange_service.validate_symbol(settings.default_symbol)
|
||||
except Exception as exc:
|
||||
symbol_validation = None
|
||||
symbol_validation_message = f"Не удалось проверить символ: {exc}"
|
||||
else:
|
||||
symbol_validation_message = symbol_validation.message
|
||||
|
||||
exchange_health = exchange_service.get_health()
|
||||
|
||||
if exchange_health.ok and exchange_health.mode == "mock":
|
||||
exchange_state = "🟡 mock mode"
|
||||
elif exchange_health.ok:
|
||||
exchange_state = "🟢 OK"
|
||||
exchange_state = "🟢 API OK"
|
||||
else:
|
||||
exchange_state = "🔴 attention"
|
||||
exchange_state = "🔴 ошибка"
|
||||
|
||||
symbol_state = "🟢 OK" if symbol_validation and symbol_validation.is_valid else "🔴 ошибка"
|
||||
|
||||
components = [
|
||||
ComponentStatus(
|
||||
@@ -56,6 +69,11 @@ def get_system_snapshot() -> SystemSnapshot:
|
||||
state=exchange_state,
|
||||
details=exchange_health.message,
|
||||
),
|
||||
ComponentStatus(
|
||||
name="Символ",
|
||||
state=symbol_state,
|
||||
details=symbol_validation_message,
|
||||
),
|
||||
ComponentStatus(
|
||||
name="База данных",
|
||||
state="🟡 не подключена",
|
||||
@@ -72,6 +90,8 @@ def get_system_snapshot() -> SystemSnapshot:
|
||||
timezone_name=settings.tz,
|
||||
exchange_enabled=settings.exchange_enabled,
|
||||
exchange_name=settings.exchange_name,
|
||||
default_symbol=settings.default_symbol,
|
||||
symbol_validation_message=symbol_validation_message,
|
||||
components=components,
|
||||
)
|
||||
|
||||
@@ -99,7 +119,8 @@ def build_system_text() -> str:
|
||||
f"- os: {snapshot.os_name}\n"
|
||||
f"- timezone: {snapshot.timezone_name}\n"
|
||||
f"- exchange_enabled: {snapshot.exchange_enabled}\n"
|
||||
f"- exchange_name: {snapshot.exchange_name}\n\n"
|
||||
f"- exchange_name: {snapshot.exchange_name}\n"
|
||||
f"- default_symbol: {snapshot.default_symbol}\n\n"
|
||||
"<b>Справка</b>\n"
|
||||
"/start — стартовый экран\n"
|
||||
"/menu — показать меню\n"
|
||||
|
||||
Reference in New Issue
Block a user