Aller au contenu

Script : Renommer Les Films D'apr


bud77

Messages recommandés

Lorsque je copie le script que tu as reedite ce matin et que je le colle dans un bloc notes malheureusement il garde la mise en forme et donc ne fait pas suivre les "codes" l'un derrière l'autre de manière horizontale mais verticale comme ici

Je previens que je suis pas très fort en informatique et je n'ai pas compris comment je dois faire pour vérifier : "pour le probleme de chemin /homes/admin, je viens de constater que c'est un lien et non pas un dossier reel.

le lien pointe vers /volume1/@fake_home_link qui est marquer en rouge dans putty....parce qu'il n'existe pas... youpi !

il suffit de recreer /volume1/@fake_home_link/admin et plus de problems !

est ce que tu peux verifier l'existance de ce dossier via putty sur ton nas"

merci

Lien vers le commentaire
Partager sur d’autres sites

#!/bin/ash
###########################################################################################
#............ Script pour renommer les films de Video Station..V11.2......................#
#.........................................................................................#
#............... Permet de renommer les fichiers sous le nom officiel du films............#
###########################################################################################
###########################################################################################
#                                    Paramettre du script                                 #
###########################################################################################
MAJ_CONF="Yes" # mettre Yes pour avoir la demande de confirmation de renommage
ADD_DATE_IN_LOG="Yes" # mettre Yes pour afficher la date dans le log
LOG_PATH=/volume1/System/Scripts_LOG/ # chemin du log
LOG_NAME=Videostation.renommer.films.sh # nom du fichier log

NOW=$(date +"%F") # declaration de la date - ne pas changer
###########################################################################################
#                               declaration du nom du log                                 #
###########################################################################################
if [ "$ADD_DATE_IN_LOG" == "Oui" ] || [ "$ADD_DATE_IN_LOG" == "Yes" ] || [ "$ADD_DATE_IN_LOG" == "Y" ] || [ "$ADD_DATE_IN_LOG" == "O" ];
	then
		LOG_FILE="$LOG_PATH$LOG_NAME.$NOW.log"
	else
		LOG_FILE="$LOG_PATH$LOG_NAME.log"
fi
###########################################################################################
#                      Declaration de la fonction de renommage                            #
###########################################################################################
start_rename () {
###########################################################################################
#                   Recuperation des infos DB et mise en variable                         #
###########################################################################################
$SUCMD '/usr/bin/psql -U postgres -d video_metadata  -q -A -t -c "select c.id,title,path,year from movie a, video_file c where c.mapper_id=a.mapper_id order by c.id desc;"' | while read ENTRY
	do
		DB_ID=$(echo $ENTRY|cut -f1 -s -d"|")
		TITRE=$(echo $ENTRY|cut -f2 -s -d"|")
		CHEMIN=$(echo $ENTRY|cut -f3 -s -d"|")
		YEAR=$(echo $ENTRY|cut -f4 -s -d"|")
		
		###########################################################################################
		#     Definition du nouveau nom (remplacement espace par des "." )et du dossier courant   #
		###########################################################################################
		NEW_TITRE=$(echo $TITRE |sed 's/,//g' |sed 's/://g' |sed 's/;//g' |sed -e 's/ /./g' |sed -e 's/?//g'|sed -e 's/*/-/g').$YEAR
		DOSSIER=$(dirname "$CHEMIN")
		EXTENSION=${CHEMIN##*.}
		
		###########################################################################################
		#               Nettoyage du nom de fichier final : accents, "&" , "," , ":"              #
		###########################################################################################
		NEW_NAME=$(echo $NEW_TITRE.$EXTENSION |sed 's/&/Et/g' |sed -e 's/$//g' |sed "s/'/./g" |sed 's///-/g' |sed "s/,/./g" |sed 's/à/a/g' |sed 's/â/a/g' |sed 's/ç/c/g' |sed 's/é/e/g' |sed 's/è/e/g' |sed 's/ê/e/g' |sed 's/ë/e/g' |sed 's/î/i/g' |sed 's/ï/i/g' |sed 's/ô/o/g' |sed 's/ö/o/g' |sed 's/œ/oe/g' |sed 's/Œ/oe/g' |sed 's/ù/u/g' |sed 's/ü/u/g' |sed 's/Â/A/g' |sed 's/Ç/C/g' |sed 's/É/E/g' |sed 's/È/E/g' |sed 's/Ê/E/g' |sed 's/Ë/E/g' |sed 's/Î/I/g' |sed 's/Ï/I/g' |sed 's/Ô/O/g' |sed 's/Ö/O/g' |sed 's/Ù/U/g' |sed 's/Ü/U/g' |sed -e 's/À/A/g' |sed -e 's/·/./g' |sed -e 's/’/./g')
		NEW_PATH=$DOSSIER/$NEW_NAME
		NEW_PATH2='$NEW_PATH'
		
		###########################################################################################
		#                      On verifie si le nom doit etre modifie                             #
		###########################################################################################
		if [ "$CHEMIN" == "$NEW_PATH" ];
			then
				echo $CHEMIN deja OK, pas de MaJ
			else
				###########################################################################################
				#                                    Demande de MaJ                                       #
				###########################################################################################
				###########################################################################################
				#                         on verifie si le fichier exist deja                             #
				###########################################################################################
				if [ -e "$NEW_PATH" ];
					then
						echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 
						echo "fichier $NEW_PATH exist deja" 
					else
						echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
						# echo $DB_ID
						echo "Renommer $CHEMIN <-- en --> $NEW_PATH" 
						##########################################################################################
						#                   On verifie si une confirmation est demandé                           #
						##########################################################################################
						if [ "$MAJ_CONF" == "Oui" ] || [ "$MAJ_CONF" == "Yes" ] || [ "$ADD_DATE_IN_LOG" == "Y" ] || [ "$ADD_DATE_IN_LOG" == "O" ]; 
							then
								read -p 'Mise a jour du fichier ? (o/n)' MAJ </dev/tty
								if [ "$MAJ" == "o" ];
									then
										##########################################################################################
										#                   On renomme le fichier, puis on met a jour la DB                      #
										##########################################################################################
										mv "$CHEMIN" "$NEW_PATH"
										synoindex -d "$CHEMIN"
										SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"'
										$SUCMD "$SQLCMD"
										synoindex -a "$NEW_PATH"
								fi
							else
										##########################################################################################
										#                   On renomme le fichier, puis on met a jour la DB                      #
										##########################################################################################
										mv "$CHEMIN" "$NEW_PATH"
										synoindex -d "$CHEMIN"
										SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"'
										$SUCMD "$SQLCMD"
										synoindex -a "$NEW_PATH"
						fi		
				fi
		fi
	done
}
###########################################################################################
#                               Check du user = admin ou root                             #
###########################################################################################

CHECK_USER=$(whoami)
case $CHECK_USER in
	admin)
		SUCMD=eval
		start_rename | tee $LOG_FILE;;
	root)
		SUCMD="su - admin -c"
		start_rename | tee $LOG_FILE;;
	*)
	echo "Ce script doit etre lance avec les user root ou admin"
	exit
esac

c'est:

si $MAJ_CON=No alors pas de confirmation et on renomme

si $MAJ_CONF=Yes alors on demande

si reponse=o alors on renomme

si reponse=n alors rien vu qu'il n'y a pas de else

et sur vos tests ca ne marche pas?

je comprend pas ou ca merdouille...

je viens de corriger un oublie de ";" mais j'arrive pas a reproduire votre erreur

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

Cette boucle va renommer même si tu ne met pas "o" au prompt

read -p 'Mise a jour du fichier ? (o/n)' MAJ </dev/tty
if [ "$MAJ" == "o" ];
then
##########################################################################################
#                   On renomme le fichier, puis on met a jour la DB                      #
##########################################################################################
mv "$CHEMIN" "$NEW_PATH"
synoindex -d "$CHEMIN"
SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"'
$SUCMD "$SQLCMD"
synoindex -a "$NEW_PATH"
fi
else
##########################################################################################
#                   On renomme le fichier, puis on met a jour la DB                      #
##########################################################################################
mv "$CHEMIN" "$NEW_PATH"
synoindex -d "$CHEMIN"
SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"'
$SUCMD "$SQLCMD"
synoindex -a "$NEW_PATH"
fi	

Si tu met "o" çà renomme, si tu met autre chose, le else fait aussi un renommage

Lien vers le commentaire
Partager sur d’autres sites

#!/bin/ash
###########################################################################################
#............ Script pour renommer les films de Video Station..V11.3......................#
#.........................................................................................#
#............... Permet de renommer les fichiers sous le nom officiel du films............#
###########################################################################################
###########################################################################################
#                                    Paramettre du script                                 #
###########################################################################################
MAJ_CONF="Non" # mettre Yes pour avoir la demande de confirmation de renommage
ADD_DATE_IN_LOG="Yes" # mettre Yes pour afficher la date dans le log
LOG_PATH=/volume1/System/Scripts_LOG/ # chemin du log
LOG_NAME=Videostation.renommer.films.sh # nom du fichier log

NOW=$(date +"%F") # declaration de la date - ne pas changer
###########################################################################################
#                               declaration du nom du log                                 #
###########################################################################################
if [ "$ADD_DATE_IN_LOG" == "Oui" ] || [ "$ADD_DATE_IN_LOG" == "Yes" ] || [ "$ADD_DATE_IN_LOG" == "Y" ] || [ "$ADD_DATE_IN_LOG" == "O" ];
	then
		LOG_FILE="$LOG_PATH$LOG_NAME.$NOW.log"
	else
		LOG_FILE="$LOG_PATH$LOG_NAME.log"
fi
###########################################################################################
#                      Declaration de la fonction de renommage                            #
###########################################################################################
start_rename () {
###########################################################################################
#                   Recuperation des infos DB et mise en variable                         #
###########################################################################################
$SUCMD '/usr/bin/psql -U postgres -d video_metadata  -q -A -t -c "select c.id,title,path,year from movie a, video_file c where c.mapper_id=a.mapper_id order by c.id desc;"' | while read ENTRY
	do
		DB_ID=$(echo $ENTRY|cut -f1 -s -d"|")
		TITRE=$(echo $ENTRY|cut -f2 -s -d"|")
		CHEMIN=$(echo $ENTRY|cut -f3 -s -d"|")
		YEAR=$(echo $ENTRY|cut -f4 -s -d"|")
		
		###########################################################################################
		#     Definition du nouveau nom (remplacement espace par des "." )et du dossier courant   #
		###########################################################################################
		NEW_TITRE=$(echo $TITRE |sed 's/,//g' |sed 's/://g' |sed 's/;//g' |sed -e 's/ /./g' |sed -e 's/?//g'|sed -e 's/*/-/g').$YEAR
		DOSSIER=$(dirname "$CHEMIN")
		EXTENSION=${CHEMIN##*.}
		
		###########################################################################################
		#               Nettoyage du nom de fichier final : accents, "&" , "," , ":"              #
		###########################################################################################
		NEW_NAME=$(echo $NEW_TITRE.$EXTENSION |sed 's/&/Et/g' |sed -e 's/$//g' |sed "s/'/./g" |sed 's///-/g' |sed "s/,/./g" |sed 's/à/a/g' |sed 's/â/a/g' |sed 's/ç/c/g' |sed 's/é/e/g' |sed 's/è/e/g' |sed 's/ê/e/g' |sed 's/ë/e/g' |sed 's/î/i/g' |sed 's/ï/i/g' |sed 's/ô/o/g' |sed 's/ö/o/g' |sed 's/œ/oe/g' |sed 's/Œ/oe/g' |sed 's/ù/u/g' |sed 's/ü/u/g' |sed 's/Â/A/g' |sed 's/Ç/C/g' |sed 's/É/E/g' |sed 's/È/E/g' |sed 's/Ê/E/g' |sed 's/Ë/E/g' |sed 's/Î/I/g' |sed 's/Ï/I/g' |sed 's/Ô/O/g' |sed 's/Ö/O/g' |sed 's/Ù/U/g' |sed 's/Ü/U/g' |sed -e 's/À/A/g' |sed -e 's/·/./g' |sed -e 's/’/./g')
		NEW_PATH=$DOSSIER/$NEW_NAME
		NEW_PATH2='$NEW_PATH'
		
		###########################################################################################
		#                      On verifie si le nom doit etre modifie                             #
		###########################################################################################
		if [ "$CHEMIN" == "$NEW_PATH" ];
			then
				echo $CHEMIN deja OK, pas de MaJ
			else
				###########################################################################################
				#                                    Demande de MaJ                                       #
				###########################################################################################
				###########################################################################################
				#                         on verifie si le fichier exist deja                             #
				###########################################################################################
				if [ -e "$NEW_PATH" ];
					then
						echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 
						echo "fichier $NEW_PATH exist deja" 
					else
						echo -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
						# echo $DB_ID
						echo "Renommer $CHEMIN <-- en --> $NEW_PATH" 
						##########################################################################################
						#                   On verifie si une confirmation est demandé                           #
						##########################################################################################
						if [ "$MAJ_CONF" == "Oui" ] || [ "$MAJ_CONF" == "Yes" ] || [ "$ADD_DATE_IN_LOG" == "Y" ] || [ "$ADD_DATE_IN_LOG" == "O" ]; 
							then
								read -p 'Mise a jour du fichier ? (o/n)' MAJ </dev/tty
								if [ "$MAJ" == "o" ];
									then
										##########################################################################################
										#                   On renomme le fichier, puis on met a jour la DB                      #
										##########################################################################################
										mv "$CHEMIN" "$NEW_PATH"
										synoindex -d "$CHEMIN"
										SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"'
										$SUCMD "$SQLCMD"
										synoindex -a "$NEW_PATH"
								fi
							else
										##########################################################################################
										#                   On renomme le fichier, puis on met a jour la DB                      #
										##########################################################################################
										mv "$CHEMIN" "$NEW_PATH"
										synoindex -d "$CHEMIN"
										SQLCMD='/usr/bin/psql -U postgres -d video_metadata -q -A -t -c "UPDATE video_file SET path = '$NEW_PATH2' WHERE id= '$DB_ID';"'
										$SUCMD "$SQLCMD"
										synoindex -a "$NEW_PATH"
						fi		
				fi
		fi
	done
}
###########################################################################################
#                               Check du user = admin ou root                             #
###########################################################################################

CHECK_USER=$(whoami)
case $CHECK_USER in
	admin)
		SUCMD=eval
		start_rename | tee $LOG_FILE;;
	root)
		mkdir -p /volume1/@fake_home_link/admin
		SUCMD="su - admin -c"
		start_rename | tee $LOG_FILE;;
	*)
	echo "Ce script doit etre lance avec les user root ou admin"
	exit
esac

content que tout le monde soit d'accord !

du coup, je corrige le probleme du var/homes/admin dans cette version 11.3

Lien vers le commentaire
Partager sur d’autres sites

J'ai des erreurs avec la version 11.3 mais je pense que cela vient du fait que je copie colle mal le script car il reste de maniere vertical dans mon script , il ne remplit pas les lignes jusq'au bout mais garde la syntaxe comme ci-dessus du coup erreur du coup j'ai erreur lignes 1-4 et 100 avec "unexpected 'fi' (expecting then)...

Pourriez-voir avoir la gentillesse de poster le script à télécharger afin d'éviter à certaines personnes comme moi qui sont pas des plus doués en informatique d'avoir un fichier sh "bien écrit"?

En gros je pense que quand Nexius copie colle sur le post , la syntaxe du post aligne automatiquement tout le texte sur la gauche

Pouvoir telecharger le fichier sh "propre" comme pour les autres versions serait vraiment génial

en vous remerciant encore , chapeau pour votre boulot et partage

Modifié par theperfectman
Lien vers le commentaire
Partager sur d’autres sites

hello,

je veux bien le publier sur le forum, mais ce qui m'embete, c'est que c'est BUD qui est a l'origine de ce script et ca serai bien si c'était lui qui le mettais a jour plutôt que moi.

maintenant, si BUD prefere que je le publie, je le ferais avec un historique des versions et des auteurs.

en attendant, si tu veux l'utilisé, tu le copie colle dans l'editeur de text dispo dans DSM, apres, clic droit preoprieté, permission, tu coche execution et tu pourra le lancer via putty ou via tache planifier en faisant sh "le nom du script"

Modifié par nexius2
Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Très bien la version 11.3.

Je l'utilise en admin et je n'ai plus les erreurs de la maj de bd.

C'est marrant de voir que les noms des films évoluent au cours du temps. C'est-à-dire que hier soir en testant le script j'ai eu des proposition de renommage sur des fichiers qui avaient été renommés il y a 6 mois/1 ans. La plupart du temps c'est juste une histoire de casse ou bien genre : Mission Impossible III -> Mission Impossible 3.

Bref merci beaucoup. Par contre il n'y a pas la gestion des apostrophes dans les titres. bud77 m'avait dit quoi changer mais effectivement cela faisait planter la maj en base. Surement qu'il doit falloir déspécialiser le charactere ' pour l'update.

Lien vers le commentaire
Partager sur d’autres sites

normalement, le caractere ' est changer par un point. d'ailleur tout les caractere speciaux sont supprimé histoire d'avoir le moins de probleme possible....

un jour, faudrait y rajouter les series.... le hic, c'est qu'il n'y a plus moyen de savoir si c'est en VO ou FR .... d'ailleur, ca m'a deja poser probleme par le passé lors de reindexation. les fillms nommé en francais ne sont plus reconnu ou plus avec le bon titre... ce qui fait que ce n'est plus la bonne jacquette...

Lien vers le commentaire
Partager sur d’autres sites

normalement, le caractere ' est changer par un point.

Oui mais justement je pense qu'il ne faudrait essayer de ne pas le remplacer celui là pour permettre à des scrapers de bien retrouver le film correspondant.

J'en parle mais bon ce n'est pas simple à faire car même si le nom du fichier est faisable après il y a la partie database plus difficile.

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Résolu : de fait, j'avais utiliser la v10 postée par Bud.

La v11.3 lue puis copiée/collée depuis ce fil de discussion fonctionne...

Mea culpa...

Merci en tous cas à ceux qui participent à ce forum qui me rend souvent grand service (je suis neuneu que ce soit en script comme sur linux...).

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...
  • 2 semaines après...

je pensais completer ce script pour faire aussi les series.

seulement voila, lors de reindexation ou de copie vers un nouveau Syno ou ... certains films renommer en francais ne sont plus ou mal reconnu. ce qui fait que j'ai du verifier chacun des fichiers de ma bibliotheque pour les renommer par titre originaux pour etre tranquil par la suite.

du coup, je n'utilise plus du tout ce script et change si besoin le nom du fichier

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.