#!/bin/bash

# Проверяем, установлен ли ffmpeg
if ! command -v ffmpeg &> /dev/null; then
    echo "Ошибка: ffmpeg не установлен. Установите его сначала."
    exit 1
fi

# Функция для очистки имени файла
clean_filename() {
    local name="$1"
    name=$(echo "$name" | \
          sed -e 's/[[:space:]]/_/g' \
              -e 's/[][{}!@#$%^&*()=+<>?,.;:"]//g' \
              -e "s/'//g" \
              -e 's/[-]//g' \
              -e 's/__*/_/g' \
              -e 's/_$//')
    echo "$name"
}

# Рекурсивная обработка каталогов
find . -type f -name "*.flac" | while read -r flac_file; do
    # Получаем каталог и имя файла
    dir_name=$(dirname "$flac_file")
    base_name=$(basename "$flac_file" .flac)
    
    # Очищаем имя файла
    clean_name=$(clean_filename "$base_name")
    mp3_file="$dir_name/${clean_name}.mp3"
    
    # Пропускаем, если MP3 уже существует
    if [ -f "$mp3_file" ]; then
        echo "Файл '$mp3_file' уже существует, пропускаем..."
        continue
    fi
    
    # Конвертируем FLAC в MP3
    echo "Конвертируем '$flac_file' в '$mp3_file'..."
    ffmpeg -i "$flac_file" -b:a 320k "$mp3_file" -v quiet -stats
    
    # Проверяем успешность конвертации
    if [ $? -eq 0 ]; then
        echo "Успешно: $mp3_file создан"
        # Удаляем исходный FLAC файл
        rm "$flac_file"
        echo "Удалён исходный файл: $flac_file"
    else
        echo "Ошибка при конвертации $flac_file"
    fi
done

echo "Рекурсивная обработка завершена."

