linz-public-transport

TotalClaw 作者 totalclaw

查询 Linz Linien 原始 EFA 端点以进行停靠站查找和实时出发。当任务涉及林茨公共交通站点搜索、根据站点名称解析站点 ID 或获取站点即将发车的情况时使用。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~fjrevoredo-linz-public-transport
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~fjrevoredo-linz-public-transport/file -o fjrevoredo-linz-public-transport.md
## 概述(中文)

查询 Linz Linien 原始 EFA 端点以进行停靠站查找和实时出发。当任务涉及林茨公共交通站点搜索、根据站点名称解析站点 ID 或获取站点即将发车的情况时使用。

## 原文

# 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

```bash
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
```

```powershell
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
```