Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/04/2008, à 10:51

soupaloignon

[SCRIPT] NIS et quelques modifs pour thunderbird

Bonjour,

Je vous présente une modif que j'ai apporté au script NIS (version 0.8), un script permettant de redimensionner des images : (url d'origine de NIS http://www.creationgif.com/debian/nis/)

La plupart du temps j'utilise ce script pour redimensionner des images à envoyer en piece jointe avec Thunderbird. Le problème c'est que c'est long car lorsque je fais joindre des documents avec Thunderbird, il ouvre une fenêtre et là il faut que je parte au fin fond de mon disque dur à la recherche des photos.

La modif de NIS va proposer d'envoyer le dossier contenant les images redimentionnées sur le bureau, ouvrir Thunderbird, et à la fermeture de Thunderbird proposer de détruire ce dossier.
Ces options peuvent être annulées et NIS utilisé dans sa configuration normale.

Merci de vos retours.

#!/bin/bash
#
# Author : Mathieu Vilaplana <mathieu@creationgif.com>
# Author : Matthieu MARC <matthieu.marc@wanadoo.fr>
#
# Copyright (C) 2005,2006  Charles Bouveyron <charles.bouveyron@free.fr>
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

# pour l'internationalisation des messages	
# to generate the i18n file from .po file :
# $ msgfmt -o .locale/fr/LC_MESSAGES/nis.mo .locale/fr/LC_MESSAGES/fr.po
export TEXTDOMAIN="nis"
export TEXTDOMAINDIR=`dirname $0`"/.locale/"

MAXCPT=50000;

nb_images=0;
selection="";

txt_error="`gettext 'error'`"
#test if a file has been selected
if [ $# -eq 0 ]; then
	# zenity --error --title=$txt_error --text="`gettext 'You must select at least 1 file to process'`"
	here=`pwd`"/."
	files=`zenity --file-selection --multiple --separator="|" --filename="$here"`"|"
	#if $? != 0, user click on cancel button, so exit
	if [ "$?" != 0 ] ; then
		exit
	fi
	cpt=0
	# I put all filename in $selection here because I didn't managed to put filenames with whitespace in $*
	while [ ${#files} -gt 0 ]; do
		f="`echo $files |cut -f1 -d'|'`"
		isimage=`file -bi "$f" |grep -c image`
		if [ $isimage -eq 1 ]; then
			selection[$nb_images]=$f
			let "nb_images++"
		fi
		files=`echo $files |cut -f2- -d"|"`
		let "cpt++"
		# only to avoid infinite loop (do not occured normaly, but nobody never know.. perhaps!)
		if [ $cpt -gt $MAXCPT ]; then
			shift
		fi
	done
fi

#===================================
#       SELECT SIZE DIALOG
txt_text="`gettext 'Choose which size to scale to'`"
txt_title=$txt_text
txt_size="`gettext 'size'`"



#############################################################
#############################################################
# MODIFICATION DE NIS PAR SOUPALOIGNON
#############################################################
#############################################################
# Changement de la taille de la fenetre

# CODE ORIGINAL
#imgsize=`zenity --title "$txt_title" --text "$txt_text" --list --radiolist --separator=" " --column="" --column="$txt_size" FALSE "160x120" FALSE "320x240" FALSE "640x480" TRUE "800x600" FALSE "1024x768" --height=220`

# REMPLACE PAR
imgsize=`zenity --width=300 --height=250 --title "$txt_title" --text "$txt_text" --list --radiolist --separator=" " --column="" --column="$txt_size" FALSE "160x120" FALSE "320x240" FALSE "640x480" TRUE "800x600" FALSE "1024x768"`

#############################################################
#############################################################
# FIN DE MODIFICATION DE NIS PAR SOUPALOIGNON
#############################################################
#############################################################



#if $? != 0, user click on cancel button, so exit
if [ "$?" != 0 ] ; then
	exit
fi

#user must select a target size
imgsize=`echo $imgsize | sed 's/ max//g'`
if [ ! "$imgsize" ]; then
	zenity --error --title=$txt_error --text="`gettext 'select a target size'`"
	# just restart myself (more user friendly I think)
	($0 "$*")&
	exit
fi

#transform 640x480 en 640x640 for convert to respect proportions
himgsize=$imgsize
val1=`echo "$imgsize" | awk -F'x' '{ print $1  }'`
imgsize="${val1}x${val1}"

#       END SELECT SIZE DIALOG
#=========================


#Select only images
while [ $# -gt 0 ]; do
	isimage=`file -bi "$1" | grep -c image` 
	if [ $isimage -eq 1 ]; then
		selection[$nb_images]=$1
		let "nb_images++"
	else
		isdir=`file -b "$1" |grep -c directory`
		if [ $isdir -eq 1 ]; then
			for f in `ls -1 "$1"`; do
				isimage=`file -bi "$1/$f" |grep -c image`
				if [ $isimage -eq 1 ]; then
					selection[$nb_images]="$1/$f"
					let "nb_images++"
				fi
			done
		fi
	fi
	shift
done

n=$nb_images
let "n=n-1"
(for i in `seq 0 $n`;do
	picture=${selection[$i]}
	img_filename=`basename "$picture"`
	img_dirname=`dirname "$picture"`

	#create directory if not exist and at least one image to process
	if [ ! -d "$img_dirname/$himgsize"  ]; then
		mkdir -p "$img_dirname/$himgsize"
	fi

	let "compteur += 1"
	echo "`gettext '# Processing image'` $compteur / $nb_images $img_filename ..."
	convert -quality 80 -resize $imgsize "$picture" "$img_dirname/$himgsize/$img_filename"
	#convert -quality 80 -resize $imgsize "$picture" $himgsize/"$picture"
	let "progress = compteur*100/nb_images"
	echo $progress
done
) | zenity --progress --auto-close --title="`gettext 'Scaling images'`" --text="`gettext 'Processing images ...'`"  --percentage=0


#############################################################
#############################################################
# MODIFICATION DE NIS PAR SOUPALOIGNON
#############################################################
#############################################################
# N'exécute pas cette portion de code (ouvrir le dossier créé)

#(gnome-open "`dirname \"${selection[0]}\"`/$himgsize") &
#exit
#############################################################
#############################################################
# FIN DE MODIFICATION DE NIS PAR SOUPALOIGNON
#############################################################
#############################################################






#############################################################
#############################################################
# www.soupaloignon.net
# Ajout d'une portion de code au script NIS : http://www.creationgif.com/debian/nis/
# Version 0.1 : 04/03/2008
# Version 0.2 : 12/04/2008
## (Ajout : Propose de détruire le dossier envoyé sur le bureau à la fermeture de Thunderbird)
## (Ajout : Modification de la taille de la fenetre de choix des dimensions d'images)

# La plupart du temps lorsque j'utilise le script NIS
# c'est pour redimentionner des images que j'envoie par mail avec Thunderbird en piece jointe.
# Lorsque on joint un document avec Thunderbird la fenetre qui s'ouvre en 1er est le bureau.
# d'où l'ajout de cette portion de code qui va proposer d'envoyer le dossier contenant les images redimentionnées
# sur le bureau, ouvrir Thunderbird, et à la fermeture de Thunderbird proposer de détruire ce dossier.
#
# A la fin du travail du script NIS une boite de dialogue s'ouvre pour demander si on veut envoyer
# le dossier contenant les imges sur le bureau, en le renomant au passage (il commencera par "00" et sera donc
# placé en haut de la liste dans la fenetre "Joindre un fichier" de thunderbird). 
# Possibilité de lancer Thunderbird également dans la foulée
#############################################################
#############################################################



#############################################################
# Liste de choix
#############################################################

  ACT=$(zenity --list --checklist --width=500 --height=150 \
        --title "Sélectionner les opérations à effectuer" \
        --text="Veuillez sélectionnez les opérations à effectuer :" \
        --column="À faire ?" --column="Description" \
        TRUE    "Envoyer le dossier contenant les images sur le bureau" \
        FALSE    "Ouvrir Thunderbird" );

        if [ "${PIPESTATUS[0]}" != "0" ]; then
            exit
        fi


#############################################################
# Renomer le dossier créé par le script NIS.
# 00 : le dossier sera placé en haut de la liste dans la fenetre "Joindre un fichier" de thunderbird
# $himgsize : Le nom natif du dossier créé par NIS 
# $(date +%d-%m-%y) : Date du jour
#############################################################
mv $himgsize 00-Photos-envoyees-par-mail-le-$(date +%d-%m-%y)


#############################################################
# Exécution des opérations demandées
#############################################################
    # Envoyer le dossier contenant les images sur le bureau
        echo "$ACT" | grep "Envoyer le dossier contenant les images sur le bureau" >/dev/null
            if [ "$?" = 0 ] ; then
             mv 00-Photos-envoyees-par-mail-le-$(date +%d-%m-%y) $HOME/Desktop
                    if [ "${PIPESTATUS[0]}" != "0" ]; then
                        exit
                    fi
            fi


    # Ouvrir Thunderbird
        echo "$ACT" | grep "Ouvrir Thunderbird" >/dev/null
            if [ "$?" = 0 ] ; then
             thunderbird
                    if [ "${PIPESTATUS[0]}" != "0" ]; then
                        exit
                    fi
            fi
    # Détruire le dossier contenant les photos qui se trouve sur le bureau ?
	if zenity --question --text 'Maintenant que vous avez utilisé les images redimensionnées en les envoyant par mail, voulez-vous détruire le dossier contenant ces images qui se trouve sur votre bureau ?' ;then
rm -r -f $HOME/Desktop/00-Photos-envoyees-par-mail-le-$(date +%d-%m-%y)
else
exit

fi

#############################################################
#############################################################
# FIN MODIFICATION
#############################################################
#############################################################

==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#2 Le 09/06/2013, à 13:01

stéphan13

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

Bonjour soupalognion,
si tu suis toujours ce post, juste pour te remercier de ton travail ...
Je viens juste de trouver ce script mais il ne fonctionnait pas chez moi en le prennant ici : NIS 0.4 car il sagit d'une version 0.4 . Il faut prendre la 0.8 et vu la date de mise à dispo je ne parvenait pas à trouver la 0.8 nulle part ... les liens sont morts ... Grace à toi je l'ai maintenant .... Pour ce qui est de la partie avec thundirbird je ne l'ai pas testée car j'utilise evolution .
Par contre à la fin lorsque j'ai sélectionné de déplacer les photos sur mon bureau et bien lse photos ce sont en fait retrouvées dans le dossier de travail .....

Merci encore
Stéphan


Stéphan

Hors ligne

#3 Le 26/03/2014, à 19:42

soupaloignon

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

Hello,

Non, je ne suis pas ce fil avec beaucoup d'assiduité comme l'indique la date de mon message par rapport au tien wink


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#4 Le 26/03/2014, à 19:58

stéphan13

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

Pas de soucis . Le message est passé et c'est ce qui compte . Merci encore .


Stéphan

Hors ligne

#5 Le 26/03/2014, à 20:41

soupaloignon

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

Toi par contre tu es réactif ... wink

Tu as résolu le souci que tu évoques dans ton message ?

Par contre à la fin lorsque j'ai sélectionné de déplacer les photos sur mon bureau et bien lse photos ce sont en fait retrouvées dans le dossier de travail .....


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#6 Le 21/04/2014, à 09:43

stéphan13

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

Toi par contre tu es réactif ...

Ben ça c'était facile puisque j'avais choisi de suivre le fil j'ai donc reçu un mail m'indiquant que quelqu'un avait posté ;-)


Alors ...en fait dès que le travail commence un répertoire nomé "taillextaille" (en fonction du format choisi) est créer dans le répertoire de travail . c'est la que je récupère plus tard le travail du script . La commande "déplacer les images sur le bureau" ne fonctionne pas .
J'ai tenté de résoudre par moi même mais je n'ai malheureusement aucune notion du contenu de ces scripts alors .....

Dernière modification par stéphan13 (Le 21/04/2014, à 09:46)


Stéphan

Hors ligne

#7 Le 21/04/2014, à 11:09

soupaloignon

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

C'est cette ligne qui gère le chemin vers le bureau

$HOME/Desktop

Le script est vieux et il est possible que le bureau ne soit pas nommé "Desktop" sur ta distribution


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#8 Le 21/04/2014, à 19:39

stéphan13

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

C'est bien ce que je pensais . J'ai donc remplacé le /HOME/Desktop par /home/stephan/Bureau sur ma debian squeeze mais cela ne fonctionne toujours pas . Bon en même temps c'est pas bien grave .
Si le cœur t'en dit pourquoi pas essayer de régler ça ou plus simplement un message à la fin qui m'indique que c'est fini . L'essentiel est vraiment que je retrouve facilement le répertoire qui contient les images redimensionnées .

Dernière modification par stéphan13 (Le 21/04/2014, à 19:40)


Stéphan

Hors ligne

#9 Le 21/04/2014, à 20:24

soupaloignon

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

stéphan13 a écrit :

J'ai donc remplacé le /HOME/Desktop par /home/stephan/Bureau sur ma debian squeeze mais cela ne fonctionne toujours pas . Bon en même temps c'est pas bien grave .

Je crois que ce bout de code y est 2 fois dans le script. Tu as vérifié ?


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#10 Le 22/04/2014, à 08:07

stéphan13

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

Oui, il se trouve à la ligne 248 :

   

# Détruire le dossier contenant les photos qui se trouve sur le bureau ?
	if zenity --question --text 'Maintenant que vous avez utilisé les images redimensionnées en les envoyant par mail, voulez-vous détruire le dossier contenant ces images qui se trouve sur votre bureau ?' ;then
rm -r -f $home/stephan/Bureau/00-Photos-envoyees-par-mail-le-$(date +%d-%m-%y)

mais rien à voir avec le schmilblik .


Stéphan

Hors ligne

#11 Le 22/04/2014, à 14:17

soupaloignon

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

stéphan13 a écrit :

mais rien à voir avec le schmilblik .

En fait c'est ton schmilblik que je ne comprends pas wink.

Je veux bien essayer de revoir le script, mais il faut que je sois certain de l'usage que tu en fais, pour éviter de perdre du temps sur des choses qui ne serviraient pas.

1/ Utilises-tu le script pour uniquement redimensionner des images ? Auquel cas la fonction de Thunderbird ne t’intéresse pas (de toute façon tu utilises Evolution), ni la fonction déplacer vers le bureau, ni la suppression du dossier.
2/ Utilises-tu le script pour redimensionner les images avant l'envoi par Evolution ?
3/ Autres cas de figure ?

Je n'utilise plus ce script depuis un moment. Maintenant j’envoie les images sur un FTP et je met les liens dans le mail, c'est plus léger (j'ai bricolé un script qui automatise tout cela).
Mais j'ai retesté le script de ce fil de discussion, et en changeant lignes 231 et 248 "Desktop" par "Bureau" (mint 15 + mate) cela fonctionne au niveau des images (redimensionner à l'emplacement d'origine, déplacement vers le bureau, suppression). Et il ouvre Thunderbird si le choix est validé.


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#12 Le 24/04/2014, à 19:16

stéphan13

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

Je veux bien essayer de revoir le script, mais il faut que je sois certain de l'usage que tu en fais, pour éviter de perdre du temps sur des choses qui ne serviraient pas.

Comme je te l'ai dit dans le post #8 ce n'est pas bien important ... Perso je me sert de dl.free pour uploader mes photos et une fois de plus l'essentiel est que je retrouve facilement mes images ré-dimmensionnées (ce qui est le cas) pour que je puisse les exploiter et puis ensuite ... trash .

Donc non merci ne te casse pas la tête pour ça . Je tient aussi à te rappeler que c'est grâce à ton travail et à ton esprit de partage (comme je l'explique dans le post #2) que j'ai pu redimensionner mes images avec ce script et je t'en remercie encore une fois car même si a ce jour je ne m'en sert plus régulièrement, il fut une époque à laquelle il m'a grandement rendu service . Surtout lorsque j'avais plusieurs milliers de photos à redimensionner .....

Par contre si tu connais des liens sympa pour apprendre à appréhender les scripts ... je suis preneur . J'adorerais savoir faire ça ... c'est trop pratique !

Merci encore


Stéphan

Hors ligne

#13 Le 27/04/2014, à 14:39

soupaloignon

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

stéphan13 a écrit :

Par contre si tu connais des liens sympa pour apprendre à appréhender les scripts ... je suis preneur . J'adorerais savoir faire ça ... c'est trop pratique !

Le seul lien sympa que je connaisse, c'est ce forum wink

Plus sérieusement c'est en tout cas un endroit où tu trouveras vraiment beaucoup d'infos. Tout dépend finalement de ce que tu entends par "appréhender les scripts", qui peut être très différent suivant les personnes.

En ce qui me concerne je cherche toujours à faire un script quand je sais que je vais devoir répéter plus ou moins longtemps une série d'actions. C'est donc un besoin qui en est à l'origine à chaque fois.

J'essaye de décomposer le besoin en un nombre X d'actions à effectuer. De cette manière je peux faire des recherches et/ou demander de l'aide action par action si nécessaire. Ensuite j’enchaîne les différentes actions les unes après les autres dans un script.

Le résultat n'est peut être pas toujours académique (et des "codeurs fous" pourraient sans problème l'optimiser) mais au final cela marche, et c'est ce qui m'importe.


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#14 Le 02/05/2014, à 17:54

stéphan13

Re : [SCRIPT] NIS et quelques modifs pour thunderbird

OK ! et bien dans l'immédiat je n'ai pas de besoin particulier . A l'occasion alors ... Merci pour tes conseils .


Stéphan

Hors ligne