commit 37461d21182d6156abc3eab9c6fbdf76602f1b81 Author: Thorsten Date: Wed Dec 18 14:59:43 2024 +0100 Initial commit diff --git a/shell_jellyfin_unused_trickplay_delete.sh b/shell_jellyfin_unused_trickplay_delete.sh new file mode 100755 index 0000000..147343e --- /dev/null +++ b/shell_jellyfin_unused_trickplay_delete.sh @@ -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