# app/scripts/get_ticker_24hr.py from __future__ import annotations import argparse import json import sys from src.core.config import load_settings from src.integrations.exchange.rest_client import ExchangeRestClient def parse_args() -> argparse.Namespace: settings = load_settings() parser = argparse.ArgumentParser( description="Получить реальный ответ Dzengi ticker/24hr.", ) parser.add_argument( "symbol", nargs="?", default=settings.default_symbol, help=( "Торговый символ. " f"По умолчанию: {settings.default_symbol}" ), ) return parser.parse_args() def main() -> int: args = parse_args() symbol = str(args.symbol).strip() if not symbol: print( "Торговый символ не должен быть пустым.", file=sys.stderr, ) return 2 try: payload = ExchangeRestClient().get_json( "/api/v1/ticker/24hr", params={ "symbol": symbol, }, ) except Exception as exc: print( f"Не удалось получить ticker/24hr для {symbol}: " f"{type(exc).__name__}: {exc}", file=sys.stderr, ) return 1 print( json.dumps( payload, ensure_ascii=False, indent=2, sort_keys=True, ) ) return 0 if __name__ == "__main__": raise SystemExit(main())