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 04/07/2008, à 14:17

redisded

Script de notification des quotes bashfr.org

Bonjour à tous, j'ai écris récemment un petit script permettant :

- La consultation des quotes bashfr dans une fenetre zenity (meme sans cnx internet) :
    - Dans l'ordre des dernieres parutions.
    - Dans un ordre aléatoire.
    - Selon le numéro de la quote (pour retrouver une quote).

- L'affichage dans une notification zenity ou notify-send de la derniere quote parue sur le site (ou d'une autre...)

- La création d'une entrée crontab pour automatiser le lancement du script en mode "notification". 


Le script peut être lancé avec les arguments suivants :

-n ou --notification : Affiche une icone de notification si une nouvelle quote est présente sur le site.
-f ou --force-notification : Affiche une icone de notification si une nouvelle quote est présente sur le site, sinon, affiche une quote aléatoire.
-d ou --download : Télécharge uniquement le fichier de quote à partir du site (utile pour une consultation ultérieure, sans connexion internet).
-h ou --help : Affiche l'aide.

Si vous lancez le script sans argument, un menu vous propose les actions suivantes :

-Afficher toutes les quotes dans une seule fenêtre.
-Afficher des quotes une par une, dans l'ordre de parution sur le site.
-Afficher des quotes une par une, de manière aléatoire.
-Rechercher une quote par son numéro.
-Mettre à jour mon fichier de quotes.
-Modifier la configuration du script.
     -Créer ou supprimer un évenement crontab.
     -Créer un raccourci dans le menu Applications ---> Internet.
     -Supprimer la configuration du script et le raccourci dans le menu Internet.
     -Changer le programme utilisé pour me notifier les quotes (zenity ou notiyfy-send).
Cliquez sur annuler dans ce menu pour quitter le script.

Lors de la création de la crontab, vous avez le choix entre afficher une notification uniquement en cas de nouvelle quote, et afficher une quote aléatoire si aucune nouvelle quote n'est parue.

Vient ensuite la selection des jours où vous voulez lancer le script.

Enfin, vous pouvez choisir de lancer le script :

-A heure fixe.
-Toutes les x minutes.
-Toutes les x heures.

Votre crontab est maintenant créée.


Pour utiliser notify-send ou zenity, installez au préalable ces deux paquets via la commande :

sudo apt-get install zenity notify-send

Petites précisions :

Si l'affichage des notifications zenity ne devrais pas poser de pb, il se peut que certaines quotes s'affiche mal voire pas du tout (je n'ai en effet pas tésté l'affichage de TOUTES les quotes wink ).

Ceci est du au fait que je "formate" les quotes pour y ajouter des balises html (cela augmente considérablement la lisibilité de la quote dans zenity) ; De plus, certains caracteres passent mal avec zenity.
Il se peut donc que sur certaines quotes, le formattage html ne soit pas idéal (le pseudo n'est pas mis en gras ou n'est pas le seul élément en gras sur la ligne) et que je ne puisse rien y faire, limité par ma méthode rudimentaire de formatage des quotes. Cependant, il se peut également que vous rencontriez un cas de figure auquel je n'ai tout simplement pas pensé.
J'ai donc ajouté dans le script un bout de code qui copie toutes les quotes que vous affichez via le script  (que celles-ci se soient affichées correctement ou pas) dans un fichier texte (/home/$USER/.bashfr/bashfr.log).

Si vous rencontrez un quote qui s'affiche mal ou pas du tout, je vous serais donc tres reconnaissant de poster ici ce fichier en indiquant la date et l'heure à laquelle vous avez rencontré le problème, afin de me permettre d'optimiser l'affichage au fur et à mesure.

Pour finir, je voudrais remercier frafra et nicolas.sitbon pour les infos fournies sur ce topic : http://forum.ubuntu-fr.org/viewtopic.php?id=232644

Un grand merci également à guls et surtout Totor, pour m'avoir évité de me pendre avec le cable de ma souris en vociférant des incantations sataniques maudissant awk ! wink (http://forum.ubuntu-fr.org/viewtopic.php?id=232511 )

Voici donc le lien pour le téléchargement : dedisred.free.fr/scripts/bashfr.sh

Merci d'avoir eu la patience de me lire, tous vous retours sont les bienvenus.

EDIT : Derniere précision: La page de bashfr utilisé par ce script (les quotes au format fortune en fait) ne contient pas les quotes notées négativement; Il se peut donc qu'une nouvelle quote vous soit notifiée, puis plus tard une seconde, et enfin, si la derniere à été mal noté et disparait, que la précedente quote vous soit une nouvelle fois notifiée comme nouvelle. Désolé, je n'ai pas encore trouvé de solution à ce problème.

Dernière modification par redisded (Le 09/07/2008, à 15:56)

Hors ligne

#2 Le 04/07/2008, à 17:17

n3o51

Re : Script de notification des quotes bashfr.org

Salut !!!:D

Niquel ton script par contre je pense que tu aurai pu faire comme pour le script memo c'est a dire que l'utilisateur n'est pas a touche a cron pour ceux qui connaissent pas...En ajoutant le display comme tu l'avait fait pour le script memo ...Je testerai pour le retour


Welcome to the real world
________________________________

Hors ligne

#3 Le 04/07/2008, à 17:22

redisded

Re : Script de notification des quotes bashfr.org

exact, je vais voir pour implémenter ça.

Hors ligne

#4 Le 05/07/2008, à 22:50

n3o51

Re : Script de notification des quotes bashfr.org

Salut sinon pour le reste mise en forme rien a dire pour le moment ...Encore un bon script monsieur Redisded big_smile


Welcome to the real world
________________________________

Hors ligne

#5 Le 06/07/2008, à 23:32

redisded

Re : Script de notification des quotes bashfr.org

Bonsoir,
quelques petites modifications pour ceux que ca interesse :

- Ajout des lignes necessaires à la crontab automatiquement.
- Ajout d'un récapitulatif de la crontab après une création ou suppression d'évenement.
- Modification du formatage des quotes.
- Modification du systeme de copie des quotes dans le fichier log.
- Affichage d'un message si les quotes n'ont pas pu être téléchargées (sauf mode notification).
- Possibilité de supprimer le dossier de config via le script.

Je compte rajouter prochainement la possibilité d'utiliser notify-send au lieu de zenity, ainsi qu'une fonction de mise à jour automatique.

J'aimerais bien également intégrer la possibilité de rajouter une entrée dans un menu mais il me faudrais pour cela un petit icone, ce que je ne sais pas faire. Si des fois quelqu'un qui saurait faire ca s'ennuie, qu'il n'hésite pas à me proposer ses chef d'oeuvres wink

Pour mettre à jour le script, ouvrez un terminal, placez-vous dans votre dossier de scripts, puis tapez :

wget dedisred.free.fr/scripts/bashfr.sh

EDIT : Le script précédemment posté contenait une petite erreur. Corrigé à 1h21.

Dernière modification par redisded (Le 07/07/2008, à 00:21)

Hors ligne

#6 Le 07/07/2008, à 13:03

kikislater

Re : Script de notification des quotes bashfr.org

$ wget dedisred.free.fr/scripts/bashfr.sh
--14:01:20--  http://dedisred.free.fr/scripts/bashfr.sh
           => `bashfr.sh'
Résolution de dedisred.free.fr... 212.27.63.104
Connexion vers dedisred.free.fr|212.27.63.104|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK
Longueur: 16 847 (16K) [text/x-sh]

100%[====================================>] 16 847        97.57K/s             

14:01:21 (97.05 KB/s) - « bashfr.sh » sauvegardé [16847/16847]

$ sh bashfr.sh
bashfr.sh: 54: function: not found
bashfr.sh: 58: Syntax error: "}" unexpected

Petite erreur !!!

Hors ligne

#7 Le 07/07/2008, à 13:30

redisded

Re : Script de notification des quotes bashfr.org

euh... je suis surpris, j'utilise le script depuis et tout fonctionne. la fonction de la ligne 54 ne pose pas de pb chez moi !
pourrais-tu stp essayer la commande :

bash -x bashfr.sh 2&>log

et poster ici le fichier log qui va tre créé dans le dossier ou se trouve le script ?

Cela me donnera plus de détail sur l'execution du script, je pourrais ainsi voir ce qui coince.

De plus, je ne sais pas exactement pourquoi tu lance le script avec sh avant mais as-tu essayé de cette manière :

./bashfr.sh

Veuillez pardonner mon ignorance si ca reviens au meme wink

Si d'autres rencontre le meme pb, n'hésitez pas à le faire savoir.

Juste pour être sur , pourrais tu confirmer que le script contient bien ca de la ligne 54 à la 59 :

function verif_confrep {
if [ ! -d "$confrep" ] ; then
	mkdir "$confrep"
fi
}

Dernière modification par redisded (Le 07/07/2008, à 13:30)

Hors ligne

#8 Le 07/07/2008, à 13:54

kikislater

Re : Script de notification des quotes bashfr.org

Voila le log :

+ export LANG=fr_FR.UTF-8
+ LANG=fr_FR.UTF-8
+ version=0.1
+ confrep=/home/kiki/.bashfr
+ dl=0
+ silent=0
+ options='Liste des options :

-n ou --notification : Affiche une icone de notification si une nouvelle quote est présente sur le site.\n
-f ou --force-notification : Affiche une icone de notification si une nouvelle quote est présente sur le site, sinon, affiche une quote aléatoire.\n
-d ou --download : Télécharge uniquement le fichier de quote à partir du site (utile pour une consultation ultérieure, sans connexion internet).\n
-h ou --help : Affiche cette aide.'
+ noquote='Quote introuvable.

La quote n'\''existe peut-être pas ou est noté négativement.
La page de bashfr utilisé par ce script ne contient pas les quotes négatives.

Si la quote est présente sur le site et noté positivement,
il s'\''agit probablement d'\''un bug.
Merci d'\''en faire part sur <span foreground="blue">http://forum.ubuntu-fr.org/viewtopic.php?pid=1903875</span>

Pour vérifier l'\''existence ou la note de votre quote :'
bashfr.sh: line 195: erreur de syntaxe près du jeton `done' inattendu
bashfr.sh: line 195: `done'

Ca revient au même mais si je fais :

$ ./bashfr.sh
bash: ./bashfr.sh: Permission non accordée

Oui c'est bien présent !

Hors ligne

#9 Le 07/07/2008, à 14:43

redisded

Re : Script de notification des quotes bashfr.org

grrrrrmpff !!!

toutes mes excuses kikislater roll

En fait, comme je l'ai dit dans le post de la mise à jour, j'avais initialement posté une version avec un pb (un copier/coller malheureux ligne 176), j'ai (cru !! ) corrigé le truc à 1h21 ... En fait, mauvaise manip, c'est la version avec la coquille qui est restée sur le serveur sad

Le pb est maintenant (vraiment ! ) résolu, tu peu donc, soit retéléchargé le script via wget soit simplement éditer le script et supprimer à la ligne 176 :

Possibilité de supprimer le dossier de config via le script.

(tout ce qui est apres le "do" en fait)

Encore désolé pour la galère roll

J'espere que le script te plaira wink

Dernière modification par redisded (Le 07/07/2008, à 15:22)

Hors ligne

#10 Le 07/07/2008, à 14:53

kikislater

Re : Script de notification des quotes bashfr.org

marche toujours pas : même erreur

Dernière modification par kikislater (Le 07/07/2008, à 14:57)

Hors ligne

#11 Le 07/07/2008, à 15:20

redisded

Re : Script de notification des quotes bashfr.org

as tu re-téléchargé  (via le lien ou via wget) ou as-tu effacé le commentaire superflu à la main ?

Si tu as téléchargé via le lien, firefox ne semble pas prendre la derniere version du fichier si tu l'a déja téléchargé, dans ce cas, il faut passer par wget.

Dernière modification par redisded (Le 07/07/2008, à 15:20)

Hors ligne

#12 Le 07/07/2008, à 15:29

kikislater

Re : Script de notification des quotes bashfr.org

re-téléchargé via wget !

Je re-essaye : pareil

Hors ligne

#13 Le 07/07/2008, à 17:03

redisded

Re : Script de notification des quotes bashfr.org

tu peu me poster la ligne 176 du script stp ?

Hors ligne

#14 Le 07/07/2008, à 17:46

kikislater

Re : Script de notification des quotes bashfr.org

Voila :

while true ; do

Hors ligne

#15 Le 07/07/2008, à 18:06

redisded

Re : Script de notification des quotes bashfr.org

Huuummm je viens de relire tes précedents messages et mon attention s'est portée la-dessus :

$ ./bashfr.sh
bash: ./bashfr.sh: Permission non accordée

Si c'est le message que tu rencontre, il suffit d'accorder le droit d'execution (dsl j'avais pas précisé) :

pour cela, soit tu fais un clique-droit sur le fichier et tu choisi propriété; ensuite, dans l'onglet permission, tu coche la case "autoriser l'execution du fichier comme un programme" .

pour faire la manip en ligne de commande, place toi dans le repertoire du script et tape :

chmod u+x bashfr.sh

Si le pb est autre, reposte ici le log obtenu grace à la commande :

bash -x bashfr.sh 2&>log

Il devrait avoir changé.

Dernière modification par redisded (Le 07/07/2008, à 18:08)

Hors ligne

#16 Le 07/07/2008, à 18:17

kikislater

Re : Script de notification des quotes bashfr.org

Bé non juste un problème de droit mais je croyais l'avoir réglé en faisant un chown ...
Voilà c'est réglé

Hors ligne

#17 Le 07/07/2008, à 18:18

redisded

Re : Script de notification des quotes bashfr.org

oki amuse toi bien wink

Hors ligne

#18 Le 07/07/2008, à 18:27

atlas95

Re : Script de notification des quotes bashfr.org

Je me permets de poster le miens, à force d'avoir la flemme de poster on se fait dépasser tongue
http://www.atlas95.com/fichiers/bashfr_script.tar.gz

Il a une interface graphique, mise a jours automatique, mais pas d'avertissement si mise à jour ou pas, possibilité de binder un raccourci clavier pour afficher une quote, et possibilité de l'installer en applet dans la zone de notification, on clic dessus et une quote apparait.

C'est le premier script que j'ai fais :-)

edit: les icônes change aléatoirement également, et j'ai mis une fonction pour forcer les gens a travailler de temps en temps tongue, dites moi ce que vous en penser. Je peux créer un autre topic si le skouatage dérange smile?

edit2: J'avais bloggué ça ici : http://www.atlas95.com/blog/2008/06/24/mes-scripts-bash/

Redisded, je vais tester ton script bien sûr et peut être qu'on pourra merger les 2 ?

Dernière modification par atlas95 (Le 07/07/2008, à 18:35)


Ubuntu sur un XPS m1330:c'est ici !
Mon blog sur ubuntu:c'est ici !
Jabber : cyril at jabber.levis-heb.net

Hors ligne

#19 Le 07/07/2008, à 19:36

redisded

Re : Script de notification des quotes bashfr.org

atlas95 a écrit :

Redisded, je vais tester ton script bien sûr et peut être qu'on pourra merger les 2 ?

pourquoi pas ! Je vais tester le tiens également.

Hors ligne

#20 Le 09/07/2008, à 16:06

redisded

Re : Script de notification des quotes bashfr.org

Bonjour à tous,
pour ceux que ca interesse, j'ai ajouté quelque fonctionnalités sur le script :

Ajout d'une fonction de mise à jour automatique du script.                               
Réorganisation du menu ; déplacement de certaines fonctions dans un menu configuration.   
Possibilité d'utiliser notify-send à la place de zenity --notification.                   
Possibilité de créer un lanceur pour le script dans le menu Applications ---> Internet.           
Utilisation du logo bashfr pour notifier les quotes (ainsi que pour le lanceur).           

Pour télécharger la derniere version ,ouvrez un terminal, placez vous dans votre dossier de script, puis tapez successivement :

rm -f bashfr.sh
wget dedisred.free.fr/scripts/bashfr.sh
chmod u+x bashfr.sh

Les prochaines mises à jour se feront automatiquement wink

Si vous souhaitez utiliser notify-send à la place, pensez d'abord à l'installer via la commande :

sudo apt-get install notify-send

Au premier lancement, le script vous demande si vous souhaitez utiliser zenity ou notify-send pour les notifications, puis enregistre votre réponse dans le fichier de config; si vous ne souhaitez pas utiliser le mode de notification, laissez zenity et validez.

Toutes vos suggestions sont les bienvenues,
enjoy wink

Dernière modification par redisded (Le 09/07/2008, à 16:07)

Hors ligne