#!/usr/bin/env bash
set -euo pipefail
install -d -m 0755 /opt/zfila-player
player_url="${1:-https://zfila.com/player.html}"
case "$player_url" in https://*) ;; *) echo "A URL do player tem de usar HTTPS." >&2; exit 2;; esac
printf '%s\n' "$player_url" >/opt/zfila-player/player-url
cat >/opt/zfila-player/start.sh <<'EOF'
#!/usr/bin/env bash
set -e
url="${ZFILA_PLAYER_URL:-$(cat /opt/zfila-player/player-url)}"
while true; do
  printf '%s START %s\n' "$(date -Is)" "$url" >>/var/log/zfila-player.log
  chromium --kiosk --noerrdialogs --disable-session-crashed-bubble --disable-infobars --autoplay-policy=no-user-gesture-required "$url" >>/var/log/zfila-player.log 2>&1 || true
  printf '%s EXIT\n' "$(date -Is)" >>/var/log/zfila-player.log
  sleep 3
done
EOF
chmod 0755 /opt/zfila-player/start.sh
cat >/opt/zfila-player/status.sh <<'EOF'
#!/usr/bin/env bash
set -u
echo "Serviço: $(systemctl is-active zfila-player.service 2>/dev/null || true)"
echo "Arranque automático: $(systemctl is-enabled zfila-player.service 2>/dev/null || true)"
echo "URL: $(cat /opt/zfila-player/player-url 2>/dev/null || true)"
echo "Chromium: $(pgrep -c chromium 2>/dev/null || true) processo(s)"
echo "Últimos eventos:"
tail -n 10 /var/log/zfila-player.log 2>/dev/null || true
EOF
chmod 0755 /opt/zfila-player/status.sh
cat >/etc/systemd/system/zfila-player.service <<'EOF'
[Unit]
Description=ZFila TV Player
After=network-online.target graphical.target
Wants=network-online.target
[Service]
User=zfplayer
Environment=DISPLAY=:0
Environment=HOME=/home/zfplayer
ExecStart=/opt/zfila-player/start.sh
Restart=always
RestartSec=5
[Install]
WantedBy=graphical.target
EOF
id zfplayer >/dev/null 2>&1 || useradd -m -s /bin/bash zfplayer
systemctl daemon-reload
systemctl enable zfila-player.service
echo "Instalado para $player_url. Reinicie o equipamento e emparelhe o player no ecrã."
echo "Diagnóstico: sudo /opt/zfila-player/status.sh"
