version simplifié
This commit is contained in:
parent
4046607b42
commit
f161db8e5e
168
postprocess-simplified.sh
Normal file
168
postprocess-simplified.sh
Normal file
@ -0,0 +1,168 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ----------------------------------
|
||||
# Configuration des chemins et du fichier de log
|
||||
# ----------------------------------
|
||||
ORG_PATH="/home/diabolino2/downloads/qbittorrent"
|
||||
FINAL_PATH="/home/diabolino2"
|
||||
LOG_FILE="/home/diabolino2/torrentend_debug.log"
|
||||
BIN_PATH="/home/diabolino2/bin"
|
||||
|
||||
# ----------------------------------
|
||||
# Couleurs pour l'affichage (facultatif)
|
||||
# ----------------------------------
|
||||
VERT="\033[0;32m"
|
||||
BLEU="\033[1;34m"
|
||||
NORMAL="\033[0;39m"
|
||||
|
||||
# ----------------------------------
|
||||
# Lecture des arguments
|
||||
# ----------------------------------
|
||||
file="$1"
|
||||
original_file="$file"
|
||||
|
||||
# ----------------------------------
|
||||
# Fonction de log simplifiée
|
||||
# ----------------------------------
|
||||
log() {
|
||||
echo "$1" >> "$LOG_FILE"
|
||||
}
|
||||
log "-------------------------------"
|
||||
log "$(date): Script exécuté"
|
||||
log "Base filename: $file"
|
||||
log "DEBUT DE TRAITEMENT"
|
||||
|
||||
# ----------------------------------
|
||||
# Nettoyage du répertoire : suppression des samples et renommage des espaces
|
||||
# ----------------------------------
|
||||
clean_dir() {
|
||||
# Supprime tous les répertoires ou fichiers avec "sample" (n'importe quelle casse)
|
||||
find "$1" -maxdepth 1 -iname '*sample*' -exec rm -rf {} +
|
||||
# Renommage des espaces
|
||||
rename 's/ /_/g' "$1"/* 2>/dev/null || true
|
||||
}
|
||||
|
||||
# ----------------------------------
|
||||
# Copie en hardlink
|
||||
# ----------------------------------
|
||||
copieorg() {
|
||||
cp -rl "$1" "$2"
|
||||
}
|
||||
|
||||
# ----------------------------------
|
||||
# Suppression des accents
|
||||
# ----------------------------------
|
||||
remove_accents() {
|
||||
echo "$1" | iconv -f utf8 -t ascii//TRANSLIT
|
||||
}
|
||||
|
||||
# ----------------------------------
|
||||
# Nettoyage du nom de fichier
|
||||
# ----------------------------------
|
||||
sanitize_name() {
|
||||
local filepath="$1"
|
||||
local filename="$(basename "$filepath")"
|
||||
local ext="${filename##*.}"
|
||||
local name="${filename%.*}"
|
||||
name="$(remove_accents "$name")"
|
||||
name="${name// /.}" # Espace → underscore (change en point si tu veux ".")
|
||||
name=$(echo "$name" | sed 's/[^A-Za-z0-9._-]//g') # Supprime tout sauf lettre/chiffre/point/underscore/tiret
|
||||
printf "%s.%s" "$name" "$ext"
|
||||
}
|
||||
|
||||
# ----------------------------------
|
||||
# Traitement des .mkv uniquement
|
||||
# ----------------------------------
|
||||
process_mkv() {
|
||||
local src="$1" dst="$2"
|
||||
local out="$(sanitize_name "$src")"
|
||||
copieorg "$src" "$dst/$out"
|
||||
$BIN_PATH/postauto add "$dst/$out"
|
||||
echo -e "${BLEU}OK:${NORMAL} $out ajouté"
|
||||
log "$src -> $dst/$out"
|
||||
}
|
||||
|
||||
# ----------------------------------
|
||||
# Upload des .nfo avec renommage à la volée
|
||||
# ----------------------------------
|
||||
upload_nfo() {
|
||||
local src="$1"
|
||||
# Génère un nom nettoyé pour le NFO
|
||||
local fn="$(sanitize_name "$src")"
|
||||
# Envoie le nfo sous le nom nettoyé sans renommer le fichier sur disque
|
||||
curl -s -k -L -m 60 \
|
||||
-F "nfo=@${src};filename=${fn}" \
|
||||
-F upload=upload "https://unfr.pw/nfos-upload"
|
||||
log "UPLOAD NFO $src -> $fn"
|
||||
}
|
||||
|
||||
# ----------------------------------
|
||||
cd "$ORG_PATH" || exit 1
|
||||
|
||||
# On va gérer le cas fichier/dossier
|
||||
if [ -f "$file" ]; then
|
||||
log "Fichier trouvé à la racine: $file"
|
||||
files_mkv=("$file")
|
||||
files_nfo=()
|
||||
[ "${file##*.}" = "nfo" ] && files_nfo=("$file")
|
||||
elif [ -d "$file" ]; then
|
||||
log "Dossier trouvé à la racine: $file"
|
||||
clean_dir "$file"
|
||||
rar_present=$(find "$file" -maxdepth 3 -type f -iname "*.rar" | head -n1)
|
||||
sfv_present=$(find "$file" -maxdepth 3 -type f -iname "*.sfv" | head -n1)
|
||||
if [[ -n "$rar_present" && -n "$sfv_present" ]]; then
|
||||
log "RAR et SFV trouvés dans $file, exécution de scene."
|
||||
/home/diabolino2/bin/scene "$file"
|
||||
exit 0
|
||||
fi
|
||||
mapfile -d '' files_mkv < <(find "$file" -maxdepth 3 -type f -iname '*.mkv' -print0 | sort -z)
|
||||
mapfile -d '' files_nfo < <(find "$file" -maxdepth 3 -type f -iname '*.nfo' -print0)
|
||||
else
|
||||
found=""
|
||||
for tdir in *.torrent; do
|
||||
if [ -d "$tdir/$file" ]; then
|
||||
found="$tdir/$file"
|
||||
break
|
||||
elif [ -f "$tdir/$file" ]; then
|
||||
found="$tdir/$file"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -n "$found" ]; then
|
||||
file="$found"
|
||||
log "Info : $original_file non trouvé à la racine, utilisation de $file"
|
||||
if [ -d "$file" ]; then
|
||||
clean_dir "$file"
|
||||
rar_present=$(find "$file" -maxdepth 3 -type f -iname "*.rar" | head -n1)
|
||||
sfv_present=$(find "$file" -maxdepth 3 -type f -iname "*.sfv" | head -n1)
|
||||
if [[ -n "$rar_present" && -n "$sfv_present" ]]; then
|
||||
log "RAR et SFV trouvés dans $file, exécution de scene."
|
||||
/home/diabolino2/bin/scene "$file"
|
||||
exit 0
|
||||
fi
|
||||
mapfile -d '' files_mkv < <(find "$file" -maxdepth 3 -type f -iname '*.mkv' -print0 | sort -z)
|
||||
mapfile -d '' files_nfo < <(find "$file" -maxdepth 3 -type f -iname '*.nfo' -print0)
|
||||
elif [ -f "$file" ]; then
|
||||
files_mkv=("$file")
|
||||
files_nfo=()
|
||||
[ "${file##*.}" = "nfo" ] && files_nfo=("$file")
|
||||
fi
|
||||
else
|
||||
log "ERREUR : $original_file introuvable ni à la racine ni dans un dossier .torrent"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Traitement des mkv trouvés
|
||||
for mkv in "${files_mkv[@]}"; do
|
||||
process_mkv "$mkv" "$FINAL_PATH"
|
||||
done
|
||||
|
||||
# Traitement des nfo trouvés
|
||||
for nfo in "${files_nfo[@]}"; do
|
||||
upload_nfo "$nfo"
|
||||
done
|
||||
|
||||
log "FIN DE TRAITEMENT"
|
||||
log "-------------------------------"
|
||||
exit 0
|
||||
Loading…
x
Reference in New Issue
Block a user