#!/bin/bash

set -e

BASE_DIR="/var/www/html/eventi"
PAGE_URL="http://127.0.0.1/eventi/eventi_dazn.php"
MUSIC_FILE="$BASE_DIR/music.mp3"

RAW_DATE=$(date +%F)

TMP_IMAGE="$BASE_DIR/eventi_$RAW_DATE.png"
TMP_VIDEO="$BASE_DIR/eventi_build.tmp.mp4"
FINAL_VIDEO="$BASE_DIR/eventi.mp4"
FINAL_VIDEO_NEW="$BASE_DIR/eventi.mp4.new"
LOG_FILE="$BASE_DIR/video_generation.log"

{
    echo "=============================="
    echo "Avvio: $(date)"

    if [ ! -f "$MUSIC_FILE" ]; then
        echo "ERRORE: file music.mp3 non trovato in $BASE_DIR"
        exit 1
    fi

    if ! command -v wkhtmltoimage >/dev/null 2>&1; then
        echo "ERRORE: wkhtmltoimage non trovato"
        exit 1
    fi

    if ! command -v ffmpeg >/dev/null 2>&1; then
        echo "ERRORE: ffmpeg non trovato"
        exit 1
    fi

    echo "Creo screenshot completo della pagina..."
    wkhtmltoimage \
      --width 1920 \
      --height 2600 \
      --quality 100 \
      "$PAGE_URL" \
      "$TMP_IMAGE"

    if [ ! -f "$TMP_IMAGE" ]; then
        echo "ERRORE: screenshot non creato"
        exit 1
    fi

    echo "Creo video MP4..."
    ffmpeg -y \
      -loop 1 \
      -i "$TMP_IMAGE" \
      -stream_loop -1 \
      -i "$MUSIC_FILE" \
      -c:v libx264 \
      -t 60 \
      -pix_fmt yuv420p \
      -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black,format=yuv420p" \
      -c:a aac \
      -b:a 192k \
      -shortest \
      "$TMP_VIDEO"

    echo "Sostituisco video finale..."
    mv -f "$TMP_VIDEO" "$FINAL_VIDEO_NEW"
    mv -f "$FINAL_VIDEO_NEW" "$FINAL_VIDEO"

    rm -f "$TMP_IMAGE"

    echo "Video creato: $FINAL_VIDEO"
    echo "Fine: $(date)"
} >> "$LOG_FILE" 2>&1
