joy-cli/scripts/manhuang/probe-pay-rails.sh
feibisi df7b32ee91 feat(manhuang): 礼品卡市价探针(GGSel price_wme)消 pay_msrp_only
增强 ggsel 解析抽内嵌 JSON 价;区服 title 过滤;probe-pay-rails/clashctl pay-probe
写入 quotes 后刷新 chain breaks。条目价作市价存在性,非面值折扣率。
2026-07-13 09:31:46 +08:00

32 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
# 支付轨专用探针:礼品卡 / 虚拟卡市价 → 合并 ai-accounts → 刷新 chain breaks
# 用法: bash scripts/manhuang/probe-pay-rails.sh [--force]
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
export PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:${PATH:-}"
export PYTHONPATH="${ROOT}/src${PYTHONPATH:+:$PYTHONPATH}"
FORCE=()
[[ "${1:-}" == "--force" ]] && FORCE=(--force)
echo "[probe-pay-rails] giftcard + virtual_card …"
python3 "$ROOT/scripts/manhuang/probe-ai-account-quotes.py" \
--ids giftcard_us --ids giftcard_tr --ids giftcard_hk --ids virtual_card \
"${FORCE[@]}"
echo "[probe-pay-rails] refresh chain breaks …"
python3 "$ROOT/scripts/manhuang/refresh-chain-breaks.py"
# 摘要
python3 - <<'PY'
import json
from pathlib import Path
from joy.dashboard.manhuang import _pay_rail_meta
q = json.loads(Path.home().joinpath(".cache/manhuang/quotes/ai-accounts.json").read_text())
pay = _pay_rail_meta(quotes_skus=q.get("skus"))
print(f"[probe-pay-rails] pay reason={pay.get('reason')} market={pay.get('market_n')} msrp={pay.get('msrp_n')} sku={pay.get('sku_n')}")
for r in (pay.get("rails") or []):
print(f" {r.get('id')}: {r.get('quality')} price={r.get('price')} ch={r.get('channel')}")
ch = json.loads(Path.home().joinpath(".cache/manhuang/chain/breaks.json").read_text())
print(f"[probe-pay-rails] top_break={(ch.get('top_break') or {}).get('reason')} breaks={len(ch.get('breaks') or [])}")
PY