Mon premier Script Sh : Photo-to-Blog..

#!/bin/sh ## Photo-to-blog a été créé dans un but personnel afin de faciliter une personne de son entourage à uploader des images dans une galerie. # A la base, ce script est adapté au plugin Gallery (http://dsls.fribotte.org/dotclear/index.php?2005/10/21/61-plugin-gallery-09) pour dotclear. # Il est évident que ce plugin est librement modifiable afin de l'adapter à une autre utilisation. Le but pour moi était simplement de le créer. # Sachez aussi que la date inscrite lors du renommage du fichier dépend directement de celle de l'appareil photo (données EXIF). # Dramces -> http://blog.dramces.com ## Ce script dépend des programmes suivant, installable directement via "apt-get" : # - zenity (http://www.agu3l.org/article.php3?id_article=25) permettant d'ouvrir des boites de dialogue sous X # - Imagemagick qui n'est plus à présenter. (Installé en natif sous dapper si mes souvenir sont bons) # - ftp (Déjà présent en natif sous dapper) # - w3m à installer via apt-get qui permet de naviguer sur le net en mode console. ## Pour utiliser ce script : # 1- Aprés l'avoir copier dans un répertoire, le rendre executable # 2- L'éditer avec gedit ou kate afin de modifer les variables à paramètrer. # 3- En cliquant sur une photo JPG avec le bouton; faire "ouvrir avec" et sélectionner le script directement. # 4- Se laisser guider... ## Ce qui me gène encore : # - Le mot de passe ftp est en clair... -> Pas terrible... # - La fin du script (guidage pour la suite) ne me plait pas, mais je n'ai rien trouvé d'autre... J'aurais voulu lancer la mise à jour de la galerie directement, mais une authentification est nécéssaire pour lancer la page. J'ignore comment le faire ! # - Etant novice, le code est certainement lourd. Peut-être est-il possible de l'alléger... ## VARIABLES # A paramètrer soit même : desc="photo" #Si aucune description de la photo (voir plus bas), le nom de fichier sera "'date'-photo.jpg". rep="$HOME/Documents/Photos/Blog"		#Repertoire de travail archive="$HOME/Documents/Photos/Blog/archives"  #Répertoire d'archivage des photos transmises blog="http://blog.dramces.com/dotclear/"	#Adresse du blog complète (racine de dotclear) navig="firefox"					#Binaire de lancement du navigateur sftp="ftp.nananana.net"					#Serveur ftp uftp="tintin"					#Utilisateur ftp pftp="1234567"					#Password du ftp dftp="/nananana/dotclear/images/" #Répertoire images de dotclear depuis la racine du serveur ftp (faire un essai en mode console si pas certain, ou avec votreclient ftp) largeur="900" #Largeur de la photo largeurm="140" #Largeur de la miniature qualite="70" #Qualité de l'image jpg (compression) #Viariables "fixes": fic=$1 #Récupération du nom du fichier à traiter nomfic=`basename "$fic"` cat=`w3m $blog/images/ | cut -f1 -d/ -s | cut -f2 -d" "` #Récupération de la liste des répertoires du répertoire image du blog - Premier cut pour supprimer en-tête (bidouille) - Deuxieme cut pour ne récuperer que les répertoires dans images, sous dotclear  ##SCRIPT # Pré-requis if zenity --question --title "Confirmation" --text "Voulez-vous préparer la photo pour son envoi sur le blog ?" #Demande de confirmation then break #On continue else exit # fin du programme fi test -d $rep || mkdir $rep  #si le repertoire de travail n'existe pas, il sera alors créé test -d $archive || mkdir $archive  #si le repertoire d'archive n'existe pas, il sera alors créé if zenity --question --title "Date" --text "Voulez-vous récupérer la date dans les données Exif de la photo (S'assurer de la date de l'appareil)" #Demande de confirmation then day=`identify -format %[EXIF:datetime] "$fic"|cut -f1 -d" "` #Récupération de la date de prise de vue (photo) -> Données EXIF else day=`zenity --title "Votre date" --entry --text "Inscrivez une date pour la photo du style jj-mm-aa ou aaaa-mm-jj"` fi # FONCTIONS convertion() # Fonction de réduction de la photo et renommage { convert -resize $largeur -quality $qualite "$fic" $rep/$day-$desc.jpg #Diminution de la photo à une largeur de 900 et renommage convert -resize $largeurm -quality $qualite "$fic" $rep/$day-$desc.TN__.jpg #Création de la miniature } # DIFFERENTES ALTERNATIVES if zenity --question --title "Description ?" --text "Voulez-vous faire une description de la photo $nomfic ?" #Demande si desription then 		desc=`zenity --title "Descritpion" --entry --text "Tapez un mot simple pour décrire la photo $nomfic, en évitant les accents, puis fermez la fenêtre de l'image"` 		convertion  | zenity --progress --pulsate --auto-close	#lancement de la fonction conversion pré-définie et fenre d'attente (pas terrible) else 		convertion | zenity --progress --pulsate --auto-close fi # DEMANDE DU REPERTOIRE DE LA GALERIE - Apparaissent tous les repertoires (y compris ceux hors-gallerie, malheureusement) repbftp=`zenity --title="Catégorie" --text="Choisissez dans quel répertoire copier la photo" --list --column "Répertoire galerie" $cat` # Transfert FTP if zenity --question --title "Confirmation" --text "Voulez-vous transférer $nomfic renommé $day-$desc.jpg vers le répertoire $repbftp des images de votre blog ?" then 		ftp -n $sftp < < Fin  | zenity --progress --pulsate --auto-close --title "Transfert FTP"; 		user $uftp $pftp 		put $rep/$day-$desc.jpg $dftp/$repbftp/$day-$desc.jpg 		put $rep/$day-$desc.TN__.jpg $dftp/$repbftp/$day-$desc.TN__.jpg 		bye Fin else zenity --question --title "Fin du programme" --text "Le transfert est annulé. La photo et sa miniature sont présentent dans $rep. " ; exit #Si annulation du transfert à la demande, fin du programme. fi # Guidage pour la suite car non géré par le script.  if zenity --title="Lancement de $navig" --question --text="$navig va être lancé à la page de gestion de votre galerie. Voulez-vous être guidé pour la suite ?" #Demande de lancement du navigateur et si on veut être guidé... then 	$navig $blog/ecrire/tools.php?p=gallery | (zenity --title="Allez dans la galerie" --warning --text="Cliquez dans la galerie qui convient";zenity --title="Mettre à jour" --warning --text="Cliquez sur le lien - mise à jour de la galerie -";zenity --title="Terminer" --warning --text="Voilà, la photo est disponible. Veuillez fermer $navig") else $navig $blog/ecrire/tools.php?p=gallery #Cette ligne, et la même au-dessus, permettent une ouverture du lien typique du plugin Gallery pour dotclear. A modifier si autre galerie. fi cp $rep/$day-$desc* $archive/ ; rm $rep/$day-$desc* ; exit # Copie vers archive, suppression des fichiers et fin du programme...

Vous pouvez le télécharger ici : http://dramces.com/fichiers/scripts_sh/photo-to-blog.vierge.sh


Publié

dans

par

Étiquettes :

Commentaires

2 réponses à “Mon premier Script Sh : Photo-to-Blog..”

  1. Avatar de SooW
    SooW

    Juste pour faire chier :
    Dans ton script, il n’y a pas "Différentes alternatives", mais une seule (en tout cas, à l’endroit où tu mets le commentaire.
    Une alternative, c’est : Si (Condition) Alors (Instructions) Sinon (Instructions).
    Des alternatives, c’est : Si (Condition) alors [Si (Condition) Alors (Instructions) Sinon (Instructions)] Sinon [Si (Condition) Alors (Instructions) Sinon (Instructions)].
    Voilà ^^.

  2. Avatar de Dramces
    Dramces

    Pour Soow…
    C’est vrai… Il s’agit d’une alternative… On "pinaille" là ! Mais c’est vrai !!!
    😉

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *