Initial commit

This commit is contained in:
2024-12-18 14:59:43 +01:00
commit 37461d2118

View File

@@ -0,0 +1,55 @@
#!/bin/bash
# Konfiguration
dry_run=true # Setze auf "false", um Ordner tatsächlich zu löschen
search_dirs=("/home/thorsten/mnt/unRAID/Media/Stand-up-Comedy/" "/home/thorsten/mnt/unRAID/Media/Konzerte/" "/home/thorsten/mnt/unRAID/Media/Filme/" "/home/thorsten/mnt/unRAID/Media/Dokumentationen/" "/home/thorsten/mnt/unRAID/Media 2/TV Serien/") # Verzeichnisse, die durchsucht werden sollen ("/path/to/dir1" "/path/to/dir2")
video_formats=("mkv" "mp4" "avi" "mov" "flv" "wmv" "ts" "mpg" "m2ts" "webm" "vob") # Unterstützte Videoformate
# Funktion, um eine Nachricht in Dry-Run oder tatsächlichem Modus anzuzeigen
function log_action() {
if $dry_run; then
echo "[Dry-Run] $1"
else
echo "$1"
fi
}
# Funktion zum Löschen von Ordnern (im Dry-Run-Modus nur anzeigen)
function delete_folder() {
folder=$1
if $dry_run; then
log_action "[DryRun] Ordner gelöscht: $folder"
else
rm -rf "$folder" && log_action "Ordner gelöscht: $folder"
fi
}
# Hauptlogik
for dir in "${search_dirs[@]}"; do
if [ -d "$dir" ]; then
echo "Durchsuche Verzeichnis: $dir"
# Finde alle Ordner, die auf ".trickplay" enden
find "$dir" -type d -name "*.trickplay" | while read -r trickplay_folder; do
# Ableitung des Basisnamens (ohne ".trickplay")
base_name="${trickplay_folder%.trickplay}"
# Überprüfen, ob eine passende Videodatei existiert
found_video=false
for format in "${video_formats[@]}"; do
if [ -f "${base_name}.${format}" ]; then
found_video=true
break
fi
done
# Wenn keine passende Videodatei gefunden wurde, Ordner löschen
if ! $found_video; then
log_action "Keine passende Videodatei für: $trickplay_folder"
delete_folder "$trickplay_folder"
fi
done
else
echo "Verzeichnis nicht gefunden: $dir"
fi
done