Create smart_tmdb_sync.sh
This commit is contained in:
68
smart_tmdb_sync.sh
Normal file
68
smart_tmdb_sync.sh
Normal file
@@ -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 !"
|
||||
Reference in New Issue
Block a user