名称: trains
描述: 查询英国国家铁路实时发车信息、到站信息、延误情况及列车服务。当用户询问英国铁路的列车时刻、发车、到站、延误、站台或"下一班火车什么时候"时使用。通过 Darwin/Huxley2 API 支持全英所有车站。
查询英国国家铁路 Darwin API,获取实时列车发车与到站信息。
需要免费的 Darwin API 令牌:
1. 在 https://realtime.nationalrail.co.uk/OpenLDBWSRegistration/ 注册
2. 在环境变量中设置 NATIONAL_RAIL_TOKEN(或在 skills.entries.uk-trains.apiKey 中配置)
# 发车信息
./scripts/trains.py departures PAD
./scripts/trains.py departures PAD to OXF --rows 5
# 到站信息
./scripts/trains.py arrivals MAN
./scripts/trains.py arrivals MAN from EUS
# 车站搜索
./scripts/trains.py search paddington
./scripts/trains.py search kings
使用 3 字母 CRS 代码:
- PAD = 伦敦帕丁顿
- EUS = 伦敦尤斯顿
- KGX = 伦敦国王十字
- VIC = 伦敦维多利亚
- WAT = 伦敦滑铁卢
- MAN = 曼彻斯特皮卡迪利
- BHM = 伯明翰新街
- EDB = 爱丁堡韦弗利
- GLC = 格拉斯哥中央
- BRI = 布里斯托尔坦普尔米兹
- LDS = 利兹
- LIV = 利物浦莱姆街
- RDG = 雷丁
- OXF = 牛津
- CBG = 剑桥
JSON 格式,包含:
- locationName, crs - 车站信息
- messages[] - 服务提醒
- trainServices[] - 列车列表:
- std/sta - 计划发车/到站时间
- etd/eta - 预计时间("准点"、"延误" 或实际时间)
- platform - 站台号
- operator - 列车运营公司
- destination[].name - 最终目的地
- isCancelled, cancelReason, delayReason - 中断信息
在 WhatsApp/聊天回复中使用此紧凑格式:
🚂 {起点} → {终点}
*{发车时间} → {到站时间}* │📍{站台} │ 🚃 {车厢数}
{状态}
*{发车时间} → {到站时间}* │📍{站台} │ 🚃 {车厢数}
{状态}
🚂 赫默尔亨普斯特德 → 尤斯顿
*20:18 → 20:55* │📍4 │ 🚃 4
✅ 准点
*20:55 → 21:30* │📍4 │ 🚃 12
✅ 准点
*21:11 → 21:41* │📍4 │ 🚃 8
✅ 准点
要显示到站时间,需进行两次 API 调用:
1. departures {起点} to {终点} — 获取发车时间 + 服务 ID
2. arrivals {终点} from {起点} — 获取到站时间
通过服务 ID 的数字前缀进行匹配(例如,4748110HEMLHMP_ 匹配 4748110EUSTON__)。
⚠️ 延误(预计 20:35)