#!/bin/bash

SOURCE="/mnt/s/FOTY/!UNSORT"
DEST="/mnt/s/FOTY/POSORTOWANE"

echo "======================================"
echo " SORTOWANIE ZDJĘĆ"
echo "======================================"
echo "Źródło: $SOURCE"
echo "Cel: $DEST"
echo

COUNT=0
MOVED=0
NO_DATE=0
ERRORS=0
DUPLICATES=0


if [[ ! -d "$SOURCE" ]]; then
echo "BŁĄD: Nie znaleziono katalogu źródłowego:"
echo "$SOURCE"
exit 1
fi

mkdir -p "$DEST"

find "$SOURCE" -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 |
while IFS= read -r -d '' FILE; do

((COUNT++))


DATE=$(exiftool -s3 -DateTimeOriginal -d "%Y/%m" "$FILE" 2>/dev/null)

# Brak daty EXIF
if [[ -z "$DATE" ]]; then
echo "[BRAK DATY] $FILE"
((NO_DATE++))
continue
fi

YEAR="${DATE%%/*}"
MONTH="${DATE##*/}"

TARGET_DIR="$DEST/$YEAR/$MONTH"


mkdir -p "$TARGET_DIR"

BASENAME=$(basename "$FILE")
TARGET="$TARGET_DIR/$BASENAME"

# Obsługa duplikatu
if [[ -e "$TARGET" ]]; then

((DUPLICATES++))

EXT="${BASENAME##*.}"
NAME="${BASENAME%.*}"

TARGET="$TARGET_DIR/${NAME}_duplikat.${EXT}"

COUNTER=2

while [[ -e "$TARGET" ]]; do
TARGET="$TARGET_DIR/${NAME}_duplikat_${COUNTER}.${EXT}"
((COUNTER++))
done
fi

echo "[PRZENOSZĘ]"
echo " $FILE"
echo " -> $TARGET"

if mv -- "$FILE" "$TARGET"; then
((MOVED++))
else
echo " !!! BŁĄD PRZENOSZENIA !!!"
((ERRORS++))
fi

done

echo
echo "======================================"
echo " ZAKOŃCZONO"
echo "======================================"
echo "Przetworzono: $COUNT"
echo "Przeniesiono: $MOVED"
echo "Brak daty EXIF: $NO_DATE"
echo "Duplikaty: $DUPLICATES"
echo "Błędy: $ERRORS"
echo "======================================"