#!/bin/bash
set -e

# Configuration
REMOTE_USER="seedbox-ssh"
REMOTE_HOST="seedbox.notsosoft.fr"
REMOTE_PATH="/home/downloader"
LOCAL_BASE="/home/seedbox-sync"
LOCK_FILE="/tmp/seedbox-sync.lock"

# Change to a neutral directory to avoid 'find' errors if started from a restricted path
cd /

# Find any available SSH private key
SSH_KEY=$(find "$LOCAL_BASE/.ssh" -maxdepth 1 -name "id_*" ! -name "*.pub" | head -n 1)

# Media Folders
SOURCE_FILM="$LOCAL_BASE/film"
TARGET_FILM="/home/film/Fresh"

# Help message
if [[ "$1" == "--help" ]] || [[ "$1" == "-h" ]]; then
    echo "Usage: $0"
    echo "Syncs media from $REMOTE_HOST to $LOCAL_BASE"
    echo "Manual trigger: sudo -u seedbox-sync $0"
    exit 0
fi

# 1. Check for SSH Key
if [ -z "$SSH_KEY" ] || [ ! -f "$SSH_KEY" ]; then
    echo "❌ ERROR: No SSH private key found in $LOCAL_BASE/.ssh/"
    exit 1
fi

# 2. Check for Lock File
if [ -f "$LOCK_FILE" ]; then
    echo "⚠️  Sync already in progress."
    exit 0
fi

trap 'rm -f "$LOCK_FILE"' EXIT
touch "$LOCK_FILE"

# 3. Sync Media Function
sync_files() {
    local pass_name=$1
    echo "🚀 Starting $pass_name sync from $REMOTE_HOST..."
    
    # Sync and ensure files are group-readable so the 'film' user can hardlink them later
    rsync -avz \
        --chmod=g+r \
        --exclude 'Downloads' \
        --exclude '.*' \
        --exclude 'scripts' \
        -e "ssh -i $SSH_KEY -o BatchMode=yes -o ConnectTimeout=10" \
        "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH/" \
        "$LOCAL_BASE/"
}

# --- PRIMARY PASS ---
sync_files "primary"

# --- VERIFICATION PASS ---
sync_files "verification"

# 4. Hardlink Films to Media Library
if [ -d "$SOURCE_FILM" ]; then
    echo "🔗 Hardlinking films to $TARGET_FILM..."
    # We use sudo -u film so the created hardlinks are owned by 'film'
    sudo -u film mkdir -p "$TARGET_FILM"
    
    (
        cd "$SOURCE_FILM"
        # We use sudo -u film to create the links
        find . -type f -exec sudo -u film cp -al --parents {} "$TARGET_FILM"/ \; 2>/dev/null || true
    )
fi

# 5. Run Sorting Script
SORT_SCRIPT="/usr/local/bin/orion-sort-series"
if [ -x "$SORT_SCRIPT" ]; then
    echo "📂 Running series sorting script..."
    # This script also uses sudo -u film internally
    "$SORT_SCRIPT"
fi

echo "✅ Sync and linking completed successfully."
exit 0
