From e421e83a47182974fb56b76b5923a7424b308e23 Mon Sep 17 00:00:00 2001 From: Ssyleric <47066760+Ssyleric@users.noreply.github.com> Date: Tue, 18 Mar 2025 01:27:33 +0100 Subject: [PATCH] Create smart_tmdb_sync.sh --- smart_tmdb_sync.sh | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 smart_tmdb_sync.sh diff --git a/smart_tmdb_sync.sh b/smart_tmdb_sync.sh new file mode 100644 index 0000000..c18e508 --- /dev/null +++ b/smart_tmdb_sync.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +# Définition des répertoires +SRC_DIR="/mnt/pve/moviesNFS/" # Répertoire source où chercher le film +DEST_DIR="/serie_music/movie/" # Répertoire de destination +PROCESSED_LIST="/home/scripts/processed_movies.txt" # Liste des films déjà traités +API_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # Clé API TMDb +MIN_RATING=5.0 # Copier les films avec un vote_average >= 5.0 + +# Vérifier si jq est installé +if ! command -v jq &> /dev/null; then + echo "❌ Erreur : jq n'est pas installé. Installez-le avec : sudo apt install jq -y ou opkg install jq" + exit 1 +fi + +# Vérifier si la liste des films traités existe, sinon la créer +touch "$PROCESSED_LIST" + +# Fonction pour obtenir le rating depuis TMDb +get_tmdb_rating() { + local movie_name="$1" + local movie_year="$2" + local query_url="https://api.themoviedb.org/3/search/movie?api_key=$API_KEY&query=$(echo "$movie_name" | tr ' ' '+')&year=$movie_year" + + echo "🔍 Recherche sur TMDb : \"$movie_name\" ($movie_year)" + + local response=$(curl -s "$query_url") + local rating=$(echo "$response" | jq -r '.results | max_by(.vote_count) | .vote_average' | tr -d '[:space:]' | tr -cd '0-9.') + + if [[ -z "$rating" || "$rating" == "0" ]]; then + echo "Unknown" + else + echo "$rating" + fi +} + +# Traiter tous les répertoires +for dir in "$SRC_DIR"*/; do + movie_name=$(basename "$dir" | sed -E 's/\(.*\)//' | xargs) + movie_year=$(basename "$dir" | grep -oE '\\([0-9]{4}\\)' | tr -d '()') + + # Vérifier si le film a déjà été traité + if grep -Fxq "$movie_name ($movie_year)" "$PROCESSED_LIST"; then + echo "⏭️ [IGNORÉ] Film déjà traité : \"$movie_name ($movie_year)\"" + continue + fi + + RATING=$(get_tmdb_rating "$movie_name" "$movie_year") + echo "⭐ Résultat TMDb : \"$movie_name\" ($movie_year) - Rating: ${RATING}" + + if [[ "$RATING" != "Unknown" && $(echo "$RATING >= $MIN_RATING" | bc -l) -eq 1 ]]; then + echo "✅ [ACCEPTÉ] Copie en cours du film : \"$movie_name ($movie_year)\" (Rating: $RATING)" + dest_dir="$DEST_DIR$(basename "$dir")" + mkdir -p "$dest_dir" + + rsync -avu --progress --protect-args "$dir/" "$dest_dir/" + + echo "✅ [Copie réussie] : \"$dir\" -> \"$dest_dir\"" + + # Ajouter le film à la liste des films traités + echo "$movie_name ($movie_year)" >> "$PROCESSED_LIST" + else + echo "⏭️ [IGNORÉ] Rating trop bas ou inconnu pour : \"$movie_name ($movie_year)\"" + fi + +done + +echo "🎬✅ Copie terminée pour tous les répertoires valides !"