bus-arrivals-coruna-data

Consultar llegadas de buses de A Coruna en formato solo datos con llamadas HTTP/HTTPS directas al API de iTranvias (sin MCP ni HTML). Usar cuando el usuario pida (1) llegadas de una parada, (2) llegada de un bus concreto en una parada concreta, o (3) proximas llegadas de una linea en una parada.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "bus-arrivals-coruna-data" with this command: npx skills add cjescudero/skills/cjescudero-skills-bus-arrivals-coruna-data

Bus Arrivals Coruna Data

Overview

Resolver consultas de buses llamando directamente al API remoto y parseando JSON. No usar tools MCP para esta skill.

Prerequisito de red (Claude)

Si el entorno de Claude usa restricciones de salida, autorizar estos dominios antes de consultar:

  • https://itranvias.com
  • http://itranvias.com (fallback)

Si no estan autorizados, la consulta puede fallar con 403 o como falso "problema de conectividad".

API Contract

  1. Catalogo de lineas y paradas (mas o menos estatico):
  • https://itranvias.com/queryitr_v3.php?dato=20160101T000000_gl_0_20160101T000000&func=7
  1. Llegadas en tiempo real por parada:
  • https://itranvias.com/queryitr_v3.php?func=0&dato={stop_id}

En operacion normal:

  • Usar solo func=0 para consultas.
  • Resolver nombres de parada y linea con el catalogo local assets/coruna_catalog.json.
  • No filtrar por lineas de interes: devolver cualquier linea presente.
  • No usar parametros alternativos como mo o idP: para esta skill son invalidos.

Si la API responde texto errorS, normalmente significa URL o parametros incorrectos (por ejemplo mo=2&idP=42).

El catalogo local guarda por linea:

  • commercial_name (ej. 3, 3A).
  • directions y flags has_ida / has_vuelta.
  • route_variants con detalle por recorrido y sentido inferido.

Scripts

Consultas

scripts/query_arrivals.py

  • Consulta una parada concreta.
  • Consulta un bus concreto en una parada concreta.
  • Consulta una linea concreta en una parada.

Refresco de catalogo estatico (mantenimiento)

scripts/refresh_catalog.py

  • Llama a func=7.
  • Regenera assets/coruna_catalog.json.
  • Ejecutar solo cuando se quiera actualizar el catalogo local.

Workflow

  1. Identificar tipo de consulta:
  • parada completa
  • bus concreto en parada
  • linea concreta en parada
  1. Resolver parada:
  • Preferir --stop-id.
  • Si llega nombre, resolver con catalogo local.
  1. Ejecutar SIEMPRE primero uv run python scripts/query_arrivals.py ....
  2. No probar endpoints manuales ni alternativos antes del script (queryService.php, mo, idP, etc.).
  3. Devolver salida JSON parseada en respuesta breve.
  4. Si falta catalogo para resolver nombres, pedir stop_id o line_id o refrescar catalogo.
  5. Si se hace llamada HTTP directa, debe ser exactamente queryitr_v3.php?func=0&dato={stop_id}.

Regla de ejecucion rapida

  • Para consultas de usuario, hacer una sola llamada principal con el script.
  • Solo reintentar con --request-profile browser --retry-403 6 si el primer intento devuelve api_error.
  • No ejecutar curl directo salvo depuracion explicita solicitada por el usuario.

Commands (always uv)

Parada (todas las lineas)

uv run python skills/bus-arrivals-coruna-data/scripts/query_arrivals.py --stop-id 42 --pretty

Bus concreto en parada

uv run python skills/bus-arrivals-coruna-data/scripts/query_arrivals.py --stop-id 42 --bus-id 3519 --pretty

Linea concreta en parada

uv run python skills/bus-arrivals-coruna-data/scripts/query_arrivals.py --stop-id 42 --line-id 3 --pretty

Refrescar catalogo

uv run python skills/bus-arrivals-coruna-data/scripts/refresh_catalog.py --pretty

Si aparece 403 del API

uv run python skills/bus-arrivals-coruna-data/scripts/query_arrivals.py --stop-id 42 --request-profile browser --retry-403 4 --pretty

El script ya prueba auto por defecto (cabeceras normal + navegador y fallback https/http), pero este comando fuerza el perfil mas compatible.

Si falla en Claude/entornos cloud

uv run python skills/bus-arrivals-coruna-data/scripts/query_arrivals.py --stop-id 42 --request-profile browser --retry-403 6 --pretty

En algunos entornos cloud, iTranvias puede bloquear por IP (403) aunque la parada exista. El cliente ahora hace backoff y fallback con curl para mejorar compatibilidad, pero si el proveedor bloquea la IP de salida no hay solucion 100% desde codigo.

Output Rules

  1. No generar HTML, CSS ni UI.
  2. Responder con datos concretos (IDs, ETA, distancia, estado).
  3. Mantener coincidencia flexible por nombre cuando exista catalogo.
  4. Si el bus o linea no aparece en la parada, devolver ok: false con message.
  5. Para evitar llamadas extra, no consultar func=7 durante consultas normales.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

OpenClaw Skill Growth

Make OpenClaw Skills observable, diagnosable, and safely improvable over time. Use this when the user wants to maintain many SKILL.md files, inspect repeated...

Registry SourceRecently Updated
171Profile unavailable
General

Find Skills for ClawHub

Search for and discover OpenClaw skills from ClawHub (the official skill registry). Activate when user asks about finding skills, installing skills, or wants...

Registry SourceRecently Updated
2871Profile unavailable
General

Skill Listing Polisher

Improve a skill's public listing before publish. Use when tightening title, description, tags, changelog, and scan-friendly packaging so the listing looks cl...

Registry SourceRecently Updated
1130Profile unavailable
General

Skill Priority Setup

Scans installed skills, suggests L0-L3 priority tiers, and auto-configures skill injection policy. Use when: setting up skill priorities, optimizing token bu...

Registry SourceRecently Updated
2510Profile unavailable