360 Secure SkillHub
360 安全技能中心

Linz Public Transport

该 Skill 用于林茨公共交通场景,支持按站名搜索站点、按站点 ID 获取近期发车,并将相对倒计时和绝对时间整理为简洁结果;通过 Python 3 标准库脚本访问 Linz EFA 接口,可配置 API 基础地址。

fjrevoredo
fjrevoredo
热度 70.98
最近更新 2026-05-11 16:51:55
分类:生活依赖:代码执行 / 第三方 API / 读写文件应用场景:旅行 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add linz-public-transport
Metadata
name
linz-public-transport
description
Query Linz Linien raw EFA endpoints for stop lookup and live departures. Use when tasks involve Linz public transport stop search, resolving stop IDs from stop names, or fetching upcoming departures from a stop.
metadata
{"homepage":"https://docs.openclaw.ai/tools/skills","env":["LINZ_TRANSPORT_API_BASE_URL"],"network":"required","version":"1.0.1","notes":"Uses Linz EFA endpoints /efa/XML_STOPFINDER_REQUEST and /efa/XML_DM_REQUEST at default base http://www.linzag.at/linz2"}

Linz Public Transport

Use this skill to interact with Linz Linien EFA endpoints:

  • GET /efa/XML_STOPFINDER_REQUEST
  • GET /efa/XML_DM_REQUEST

Read endpoint details in {baseDir}/references/endpoints.md before implementation. Use {baseDir}/scripts/linz_transport.py as the default execution path.

Workflow

  1. Resolve the API base URL.
  2. Run the script subcommand that matches the task.
  3. Return a compact, user-facing summary.

Primary Tooling

  • Script path: {baseDir}/scripts/linz_transport.py
  • Runtime: Python 3, standard library only.
  • Base URL input:
    • --base-url <url> argument, or
    • LINZ_TRANSPORT_API_BASE_URL environment variable, or
    • default http://www.linzag.at/linz2.

Preferred commands:

  • Search stops:
    • python {baseDir}/scripts/linz_transport.py stops "taubenmarkt"
  • Fetch departures by stop ID:
    • python {baseDir}/scripts/linz_transport.py departures --stop-id 60501160 --limit 10
  • Resolve stop and fetch departures in one call:
    • python {baseDir}/scripts/linz_transport.py next "taubenmarkt" --limit 10 --pick-first

Step 1: Resolve Base URL

  • Use user-provided base URL first.
  • Otherwise use LINZ_TRANSPORT_API_BASE_URL if available.
  • If neither exists, use http://www.linzag.at/linz2.

Step 2: Present Output

  • Sort by countdownInMinutes ascending if needed.
  • Show the next 5-10 departures unless user asks for more.
  • Include both relative (countdownInMinutes) and absolute (time) times.
  • Keep field names stable when returning JSON.

Error Handling

  • If stop search returns empty list, suggest nearby spellings and retry with a shorter query token.
  • If multiple stop matches are returned, rerun with explicit --stop-id or use next ... --pick-first only when ambiguity is acceptable.
  • If departures response is empty, state that no upcoming departures are currently available.
  • If HTTP request fails, report status code, endpoint, and retry guidance.
  • If EFA response includes a message code, include that code in diagnostics.

Minimal Examples

python {baseDir}/scripts/linz_transport.py stops "taubenmarkt"
python {baseDir}/scripts/linz_transport.py departures --stop-id 60501160 --limit 10
python {baseDir}/scripts/linz_transport.py next "taubenmarkt" --limit 10 --pick-first
python "{baseDir}/scripts/linz_transport.py" stops "taubenmarkt"
python "{baseDir}/scripts/linz_transport.py" departures --stop-id 60501160 --limit 10
python "{baseDir}/scripts/linz_transport.py" next "taubenmarkt" --limit 10 --pick-first