#!/bin/bash

set -e

DIR="/var/www/html/eventi"
URL="http://127.0.0.1/eventi/eventi_dazn.php"
DISPLAY_NUM=":99"
SCREEN_SIZE="1280x720x24"
VIDEO_DURATION="120"
FPS="30"

OUTPUT_VIDEO="$DIR/eventi.mp4"
TEMP_VIDEO="$DIR/temp.mp4"
TEMP_FINAL="$DIR/temp_final.mp4"
MUSIC_FILE="$DIR/music.mp3"

CHROME_BIN="chromium-browser"
if ! command -v "$CHROME_BIN" >/dev/null 2>&1; then
    CHROME_BIN="chromium"
fi
if ! command -v "$CHROME_BIN" >/dev/null 2>&1; then
    CHROME_BIN="/snap/bin/chromium"
fi

echo "🧹 Pulizia processi vecchi..."
pkill -f "Xvfb $DISPLAY_NUM" 2>/dev/null || true
pkill -f chromium 2>/dev/null || true
pkill -f chrome 2>/dev/null || true

rm -f /tmp/.X99-lock
rm -f "$TEMP_VIDEO" "$TEMP_FINAL"

echo "🚀 Avvio display virtuale..."
Xvfb $DISPLAY_NUM -screen 0 $SCREEN_SIZE -ac +extension RANDR >/dev/null 2>&1 &
XVFB_PID=$!
export DISPLAY=$DISPLAY_NUM

sleep 2

echo "🌐 Apro pagina..."
"$CHROME_BIN" \
  --no-sandbox \
  --disable-gpu \
  --disable-dev-shm-usage \
  --disable-infobars \
  --window-size=1280,720 \
  --window-position=0,0 \
  --force-device-scale-factor=1 \
  --start-fullscreen \
  --kiosk \
  "$URL" >/dev/null 2>&1 &

CHROME_PID=$!

sleep 8

echo "🎬 Registro video (${VIDEO_DURATION}s)..."
ffmpeg -y \
  -video_size 1280x720 \
  -framerate $FPS \
  -f x11grab \
  -i $DISPLAY_NUM \
  -t $VIDEO_DURATION \
  -vf "crop=1280:720:0:0,format=yuv420p" \
  -c:v libx264 \
  -preset veryfast \
  -crf 23 \
  -pix_fmt yuv420p \
  "$TEMP_VIDEO"

if [ -f "$MUSIC_FILE" ]; then
    echo "🎵 Aggiungo audio..."
    ffmpeg -y \
      -i "$TEMP_VIDEO" \
      -stream_loop -1 -i "$MUSIC_FILE" \
      -map 0:v:0 \
      -map 1:a:0 \
      -c:v copy \
      -c:a aac \
      -b:a 192k \
      -ar 44100 \
      -ac 2 \
      -shortest \
      "$TEMP_FINAL"

    mv -f "$TEMP_FINAL" "$OUTPUT_VIDEO"
else
    echo "⚠️ music.mp3 non trovato, creo video senza audio"
    mv -f "$TEMP_VIDEO" "$OUTPUT_VIDEO"
fi

echo "🧹 Pulizia..."
kill $CHROME_PID 2>/dev/null || true
kill $XVFB_PID 2>/dev/null || true
pkill -f chromium 2>/dev/null || true
pkill -f chrome 2>/dev/null || true

rm -f "$TEMP_VIDEO" "$TEMP_FINAL"

echo "✅ Video creato: $OUTPUT_VIDEO"
