build 039: complete Quotes Feed migration foundation
This commit is contained in:
71
app/scripts/get_ticker_24hr.py
Normal file
71
app/scripts/get_ticker_24hr.py
Normal file
@@ -0,0 +1,71 @@
|
||||
# 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())
|
||||
Reference in New Issue
Block a user