Files
chemavx-seo-tools/hreflang-watch.service
T
ChemaVXandClaude Opus 5 6403c8e6c9 hreflang: aplicarlo solo cuando el espejo publica, sin que nadie se acuerde
Las parejas se curan a mano, pero solo se pueden declarar cuando los dos
lados están publicados: un hreflang a una URL programada apunta a un 404.
Había cinco esperando, repartidas entre el 4 y el 27 de agosto, y la
alternativa era acordarse de correr `aplicar` cinco veces en las fechas
justas. Eso no es una solución: es una lista que se cumple a medias, y el
hreflang que falta no da error en ninguna parte, así que nadie se entera.

- hreflang_watch.py + timer diario a las 06:40 UTC (40 min tras la cola,
  antes de canibal-watch). Telegram SOLO si algo se ha abierto o ha
  fallado: 26 días de cada 31 no habrá nada, y si esos días avisara, el
  día que importa se leería igual que los otros.
- `aplica()` extraída de cmd_aplicar: el automático escribe por el MISMO
  camino que el manual, no por una copia suya.
- `comprueba` separa PENDIENTE de ROTO. Antes daba diez ✗ de 404 fijos por
  los espejos programados; diez rojos permanentes que no se pueden
  arreglar son un informe que se deja de leer.

Verificado por el camino real, no en seco: se le quitó el bloque al lado ES
de la pareja de Varginha (avería visible en la web pública, 0 hreflang), el
vigilante la detectó, la escribió, la verificó contra las URLs exactas y
avisó por Telegram. Restaurada y comprobada después. Y `verifica()` se ve
fallar con una pareja cruzada a propósito, así que el  no es vacuo.

Nueve tests. Ensayado además arrancando el unit por systemd, que es donde
los CLIs de node mueren con 127 si falta el bin de nvm en el PATH.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 09:12:28 +00:00

18 lines
729 B
Desktop File

[Unit]
Description=hreflang — declara la pareja ES↔EN en cuanto el espejo se publica
Documentation=file:///home/chemavx/seo-tools/hreflang_watch.py
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
User=chemavx
WorkingDirectory=/home/chemavx/seo-tools
Environment=HOME=/home/chemavx
Environment=KUBECONFIG=/home/chemavx/.kube/config
# El bin de nvm es obligatorio: ghst-en/ghst-es son CLIs de node y sin él el
# unit muere con 127 sin decir por qué (cicatriz compartida con los demás).
Environment=PATH=/home/chemavx/.local/bin:/home/chemavx/.nvm/versions/node/v24.14.1/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=/usr/bin/python3 /home/chemavx/seo-tools/hreflang_watch.py
TimeoutStartSec=900