#!/bin/bash

INPUT="/var/www/cineluuk-mcm/uploads/incomming"
OUTPUT="/var/www/cineluuk-mcm/uploads/processed"
LOCK="/tmp/cineluuk-mcm-processing.lock"

FTP_USER="m49jb1_mcm"
FTP_PASS="kewurhf!avuGHIUg34983bkwbefk?"
FTP_HOST="m49jb1.ftp.infomaniak.com"

mkdir -p "$OUTPUT"

if [ -f "$LOCK" ]; then
    echo "Prozess läuft bereits. Abbruch."
    exit 0
fi

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

file=$(find "$INPUT" -maxdepth 1 \( -iname "*.ARW" -o -iname "*.arw" \) -type f -mmin +1 | sort | head -n 1)

if [ -z "$file" ]; then
    echo "Keine fertige RAW-Datei gefunden."
    exit 0
fi

filename=$(basename "$file")
name="${filename%.*}"
out="$OUTPUT/$name.jpg"

if [ -f "$out" ]; then
    echo "Bereits verarbeitet: $filename"
    rm -f "$file"
    exit 0
fi

echo "Starte Verarbeitung: $filename"

darktable-cli "$file" "$out" \
    --core --conf plugins/imageio/format/jpeg/quality=92

if [ ! -f "$out" ]; then
    echo "Fehler: JPG wurde nicht erstellt."
    exit 1
fi

convert "$out" \
    -enhance \
    -despeckle \
    -statistic Median 3x3 \
    -blur 0x0.6 \
    -unsharp 0x0.9 \
    -quality 90 \
    "$out"

echo "Fertig verarbeitet: $out"

lftp -u "$FTP_USER","$FTP_PASS" "$FTP_HOST" -e "cd /; put '$out'; bye"

if [ $? -eq 0 ]; then
    echo "Upload zur Gallery erfolgreich: $name.jpg"
    rm -f "$file"
    echo "Original RAW gelöscht: $filename"
else
    echo "Fehler beim Upload zur Gallery."
fi
