Este script monitoriza la web de hayahora.futbol y notifica cuándo empieza o deja de haber fútbol.
Find a file
parra 1da25a4ce2 Documentar heartbeat a Uptime Kuma y notificaciones de fallo por Ntfy
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 20:32:17 +02:00
.gitignore Monitor de bloqueos de LaLiga via hayahora.futbol 2026-04-10 09:20:35 +02:00
CLAUDE.md Documentar heartbeat a Uptime Kuma y notificaciones de fallo por Ntfy 2026-04-14 20:32:17 +02:00
env.example Documentar en env.example que URLs con '&' necesitan comillas 2026-04-14 20:30:31 +02:00
hayahora_monitor.sh Enviar heartbeat a Uptime Kuma también cuando no hay cambios 2026-04-14 20:25:06 +02:00
README.md Documentar heartbeat a Uptime Kuma y notificaciones de fallo por Ntfy 2026-04-14 20:32:17 +02:00
test_hayahora_monitor.sh Enviar heartbeat a Uptime Kuma también cuando no hay cambios 2026-04-14 20:25:06 +02:00

monitor-hay-futbol

Monitor de bloqueos de LaLiga que consulta la API de hayahora.futbol y notifica en Mattermost cuando el estado cambia (bloqueo activo / Internet libre).

Cómo funciona

  1. Consulta https://hayahora.futbol/estado/data.json
  2. Para cada ISP, calcula el porcentaje de IPs bloqueadas
  3. Si algún ISP supera el umbral (por defecto 50%), se considera bloqueo activo
  4. Solo notifica cuando el estado cambia (de bloqueado a libre o viceversa)

Cuando LaLiga bloquea, >90% de las IPs se bloquean simultáneamente. Las IPs sueltas que quedan en true tras un partido son ruido residual que el umbral filtra.

Requisitos

  • bash, curl, jq

Configuración

cp env.example .env
# Editar .env con los datos de tu instancia de Mattermost

Variables requeridas:

Variable Descripción
MATTERMOST_URL URL base de Mattermost (sin / final)
MATTERMOST_TOKEN Token de bot o token personal
MATTERMOST_CHANNEL_ID ID del canal donde publicar

Variables opcionales:

Variable Default Descripción
API_URL https://hayahora.futbol/estado/data.json URL de la API
CURL_TIMEOUT 15 Timeout de curl en segundos
BLOCK_THRESHOLD_PCT 50 % mínimo de IPs bloqueadas en un ISP para considerar bloqueo real
UPTIME_KUMA_PUSH_URL Si se define, se envía un GET como heartbeat al finalizar con éxito (tanto si hay cambios como si no). Entrecomilla el valor si la URL lleva &.
NTFY_URL Si se define, se envía una notificación a Ntfy cuando el script falla, indicando el paso y el motivo.
NTFY_TOKEN Token Bearer opcional para Ntfy si el topic está protegido.

Uso

# Ejecución manual
./hayahora_monitor.sh

# Con cron (cada 3 minutos)
*/3 * * * * /ruta/a/hayahora_monitor.sh >> /var/log/hayahora.log 2>&1

Tests

bash test_hayahora_monitor.sh