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 26/08/2007, à 09:55

weedfast

Script bash+zenity besoin d'aide svp ........

Voilà je viens de faire un script qui permet d'aspirer un site web à l'aide de wget, le tout à l'aide de zenity.
Étant débutant en la matière (et accessoirement nul ) je trouve que zenity est facile à prendre en main ( bien que ...) wink . Vous allez me dire qu'il existe déjà une interface graphique pour wget mais ce n'est que pour me permettre d'apprendre un peu...

Voici le script :

#!/bin/bash

# Créer par WeedFast    
# Version O.1           
# Aspirateur de site web 

#############################

## Informations
     zenity --info --title="Information" --text="Ce script permet d'aspirer un site web à l'aide de wget.
Dépendance : -wget (apt-get install wget)"

## Vérification de la connexion internet
    ping google.com -c 3 | zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close
         if [ "${PIPESTATUS[0]}" != "0" ]; then
            zenity --error --title="Erreur : Pas de connexion Internet" --title="Test en cours..." --text="Aucune connexion Internet n'a été détectée ou le serveur google.com ne répond pas. Veuillez vérifier vos connexions ou réessayer plus tard." --title="Erreur : Pas de connexion Internet"
            exit
         fi

## Site web à aspiré
    SITE=$(zenity --entry --width=300 --height=150 --title="Sites Web à télécharger" --entry-text="http://" --text="Entrez l'adresse du site web :" )
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi

## Choisir un répertoire pour le télécharchement de $SITE
     REP=$(zenity --title="Choisir un répertoire pour le télécharchement de $SITE" --file-selection --directory)
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi

## Changement de répertoire
     cd $REP

## Lancement de wget  
     gnome-terminal --command="wget -r -l5 -np $SITE" | zenity --progress --pulsate --auto-close --text="Téléchargement de $SITE en cours..." 
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi
## Fin
     zenity --info --title="Téléchargement réussi" --text="Félicitation le site $SITE est téléchargé dans le répertoire $REP"

## Ouverture du répertoire
     zenity --question --text="Ouvrir le répertoire $REP?"
         if [ "${PIPESTATUS[0]}" != "0" ]; then 
           exit
         fi
     nautilus $REP

Comme vous pouvez le voir le code est très "basique" et de nombreuse options sont manquantes mais malgrès ça il y a un "bug" dans ce morceau :

## Lancement de wget  
     gnome-terminal --command="wget -r -l5 -np $SITE" | zenity --progress --pulsate --auto-close --text="Téléchargement de $SITE en cours..." 
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi

La barre de progression de s'affiche pas !! --> hmm

Je voudrais en savoir un peu plus sur la ligne :

[ "${PIPESTATUS[0]}" != "0" ];

PS : Malgré ça ce script fonctionne parfaitement !! ---> Chez moi !!! tongue:P

Merci d'avance pour vos commentaires !!!

Dernière modification par weedfast (Le 27/08/2007, à 16:46)


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#2 Le 27/08/2007, à 16:47

weedfast

Re : Script bash+zenity besoin d'aide svp ........

un PETIT coup de main SVP ? wink


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#3 Le 01/09/2007, à 18:44

weedfast

Re : Script bash+zenity besoin d'aide svp ........

up


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#4 Le 01/09/2007, à 22:19

snigit

Re : Script bash+zenity besoin d'aide svp ........

Je te colle salement ce que je viens de trouver sur le web (la partie avec "sed") smile

 wget $fichier 2>&1 | sed u  's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Downloading \2/'  | zenity --progress --pulsate --auto-close --text="Téléchargement en cours...""

Je l'ai juste testé pour le téléchargement d'un fichier, ca marche (et en plus t'as le débit qui s'affiche dans la fenêtre) !
Je pense qu'il n'y aura pas de pb pour ton script

Hors ligne

#5 Le 02/09/2007, à 13:28

soupaloignon

Re : Script bash+zenity besoin d'aide svp ........

Sympa ton script, tu continues à poster les améliorations que tu y apporteras ?

Une petite remarque, la fenetre
"zenity --info --title="Téléchargement réussi" --text="Félicitation le site $SITE est téléchargé dans le répertoire"
s'ouvre, alors que le téléchargement est en cours dans le terminal. Il n'y aurait pas moyen qu'elle n'apparaisse que lorsque ce téléchargement est fini ?

En tout cas bravo, et je m'abonne à ce fil wink


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

Hors ligne

#6 Le 03/09/2007, à 20:04

weedfast

Re : Script bash+zenity besoin d'aide svp ........

le script est à la hauteur de mes compétences... pas terrible donc
je fait juste celui ci pour apprendre !!

| zenity --progress --pulsate --auto-close --text="Téléchargement en cours...""

ne fonctionne toujours pas !!

sinon je voudrais créer un menu dans lesquels ont pourrais choisir les options de wget ainsi que les types de fichier a télécharger....

list_options[] = {
  {
    "list",
       N_("Display list dialog"),
  
    "text",
       N_("Set the dialog text"),
   
    "column",
       N_("Set the column header"),
   
    "checklist",
      N_("Use check boxes for first column"),
   
    "radiolist",
       N_("Use radio buttons for first column"),
   
    "separator",
       N_("Set output separator character"),
   
    "multiple",
        N_("Allow multiple rows to be selected"),
   
    "editable",
        N_("Allow changes to text"),
   
    "print-column",
       N_("Print a specific column (Default is 1. 'ALL' can be used to print all columns)"),
   
    "hide-column",
       N_("Hide a specific column"),

Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#7 Le 10/09/2007, à 01:26

Gioo

Re : Script bash+zenity besoin d'aide svp ........

Salut, je suis en train de développer un petit script bash en ce moment mais je tâtonne un peu malgré les cours que j'ai pu avoir cette année sur le sujet.

Je me suis permis de modifier un peu ton script à ma sauce tongue :

#!/bin/bash

# Créer par WeedFast, Modifié par Gio    
# Version O.1           
# Aspirateur de site web 
#############################

### FONCTIONS ###
function annuler {
	if [ "${PIPESTATUS[0]}" != "0" ];
	then
		exit
	fi
}

### DÉBUT DU PROGRAMME ###
## Informations
zenity --info --title="Informations" --text="Ce script permet d'aspirer un site web à l'aide de wget.\nDépendance : -wget (apt-get install wget)"


## Vérification de la connexion internet
ping google.com -c 3 | zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ];
then
	zenity --error --title="Erreur : Pas de connexion Internet" --text="Aucune connexion Internet n'a été détectée ou le serveur google.com ne répond pas.\nVeuillez vérifier vos connexions ou réessayer plus tard."
	exit
fi

## Site web à aspiré
SITE=$(zenity --entry --width=300 --height=150 --title="Sites Web à télécharger" --entry-text="http://" --text="Entrez l'adresse du site web :" )
annuler

## Choisir un répertoire pour le télécharchement de $SITE
REP=$(zenity --title="Choisir un répertoire pour le télécharchement de $SITE" --file-selection --directory)
annuler

## Changement de répertoire
cd $REP

## Lancement de wget  
wget -r -l5 -np $SITE | zenity --progress --text="Téléchargement de $SITE en cours..." --pulsate --auto-close
annuler
## Fin

zenity --info --title="Téléchargement réussi" --text="Félicitation le site $SITE est téléchargé dans le répertoire $REP"

## Ouverture du répertoire
zenity --question --text="Ouvrir le répertoire $REP?"
annuler
nautilus $REP

J'ai donc regroupé en une seule fonction 'annuler' les redondances de codes dans ton script et modifié la partie du téléchargement en cours.
Maintenant la fenêtre reste présente pendant toute la durée du téléchargement.

Par contre, la barre de chargement ne bouge pas et le bouton Annuler de cette partie ne stoppe pas le téléchargement (problèmes que je rencontrent aussi sur le script que je développe).

Voilà, si tu trouves des infos sur ces deux bugs wink

Dernière modification par Gioo (Le 10/09/2007, à 01:50)


http://www.gioo.info

Hors ligne

#8 Le 03/11/2008, à 22:01

Sbeb

Re : Script bash+zenity besoin d'aide svp ........

C'est peut être un peu tard vu la date des posts, mais ça peut toujours servir wink
J'ai trouvé comment faire fonctionner la fonction --pulsate de zenity !

(echo ""; ping google.com -c 3)| zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close

En fait, tout ce qu'il manquait pour que ça fonctionne c'est un bête echo "" pour initialiser le "mouvement".


That is not dead which can eternal lie,
And with strange aeon's even death may die.

Hors ligne

#9 Le 04/11/2008, à 21:15

weedfast

Re : Script bash+zenity besoin d'aide svp ........

Sbeb a écrit :

C'est peut être un peu tard vu la date des posts, mais ça peut toujours servir wink
J'ai trouvé comment faire fonctionner la fonction --pulsate de zenity !

(echo ""; ping google.com -c 3)| zenity --progress --text="Test de la connexion internet en cours..." --pulsate --auto-close

En fait, tout ce qu'il manquait pour que ça fonctionne c'est un bête echo "" pour initialiser le "mouvement".

Un peu tard certes... Merci quand même tongue


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne