- check-session.py: preflight in gdl-cron.sh. No unexpired sessionid in the Chrome profile gdl reads -> abort before any request, ping /76 (red check). - stories-streak.py: postflight. Every fetched stories source empty for 3 consecutive days -> exit 77, for a session Instagram stopped honouring while the cookie is still present. The 2026-10-07 session death went unnoticed for a week because every run still exited 0. - gdl-sync.py: [n/N] source headers, a 60s heartbeat with new-file counts, and per-source timing, so a healthy paced run no longer looks hung. - gdl-sync@.service now runs run-%i.sh instead of gdl-cron.sh: HC_URL is set in the wrappers, so scheduled runs had never pinged Healthchecks. - Tests for both guards (offline) and the progress helpers.
17 lines
543 B
Desktop File
17 lines
543 B
Desktop File
[Unit]
|
|
# One templated service for all three modes; the instance name (%i) is the
|
|
# mode: stories, full or sweep.
|
|
Description=Instagram archive sync (%i)
|
|
Documentation=file:%h/gdl/TOOLING.md
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=%h/gdl/run-%i.sh
|
|
# A sync has no deadline and the pacing is deliberately slow; a full sweep can
|
|
# run for hours. Never let systemd kill one midway -- a half-published run is
|
|
# the one state the publish step is designed to avoid.
|
|
TimeoutStartSec=infinity
|
|
Nice=10
|