| 用途 | URL | 說明 |
|---|---|---|
| 主接口 | /tm/water.json | 推薦;Cache-Control: no-store |
| 兼容舊名 | /tm/latest.json | 與 water.json 完全同內容 |
| 專用域名 | https://tm.hk668.hk/water.json | 該域名 root 即 tm 目錄 |
| 另一域名 | https://300.ad2882.com/tm/water.json | 同機同檔案的鏡像副本 |
| 健康檢查 | /health | tm.hk668.hk 專用,回 ok |
/data/tianma_live.json · /data/wpwater_live.json| 欄位 | 類型 | 含義 |
|---|---|---|
| updatedAt | string | 本次發布時間(+08:00)。來源檔一有變化就會變,每分鐘檢查一次 |
| updatedAtMs | number | 同上,毫秒時間戳(前端好算) |
| raceDate | string | 賽日 dd-mm-yyyy;無賽日資料時為 null |
| venue | string | 場地(來自天馬源) |
| sources | object | 每個來源的 path/exists/bytes/mtime/mtimeISO/md5/jsonOk/error,用來判斷哪一路斷了 |
| summary | object | 各源 raceCount/horseCount/waterPairs 概覽 |
| tianma | object | 天馬水位整份原始資料(含 races、每匹 {w,p}、wqin/wqpl 孖寶/連贏賠率、waterTs) |
| wpwater | object | 另一路水位整份原始資料(結構同上) |
| missing / invalid | array | 缺失或解析失敗的源名;有值時 note 會說明,其餘源照常發布 |
| 欄位 | 含義 |
|---|---|
races["N"]["M"] | 第 N 場、馬號 M:{"w": 獨贏水位, "p": 位置水位} |
wqin / wqpl | 連贏 / 孖寶賠率對:{h1,h2,value,inv,seq} |
waterTs | 該場水位時間 |
dateTime / lastUpdated | 來源端抓取時間 |
fetch('https://300.ad2882.com/tm/water.json').then(r=>r.json()).then(d=>{ console.log(d.updatedAt, d.raceDate); const w = d.tianma.races['1']['1']; console.log(w.w, w.p); })
/opt/tianma/publish_water.sh · systemd:tm-water-publish.timer(每 1 分鐘) · 原子寫入、只在來源變動時更新