Alors j'ai eut l'idée de créer un script qui permet en un seul clic de scanner le document et de l'envoyer par mail. Il est toutefois nécessaire que la mamie allume le scanner et le branche à l'ordinateur...
Il lui suffit donc de cliquer sur l'icône de l'imprimante scanner qui est sur son bureau :
... et ça lance les scripts suivants :
Code scan.sh :
#!/bin/sh #On vérifie la présence du scanner sane-find-scanner >/home/mamie/.scan/testscan #On stocke dans la variable SCAN le résultat et on coupe #les caractères qui nous intéressent SCAN=$(grep "No USB" /home/mamie/.scan/testscan |cut -c5-18) echo $SCAN rm /home/mamie/.scan/testscan #Boucle de vérification #Si scan absent, on fait jouer un son et on quitte #Si scan présent on scan et on envoie par e-mail if [ "$SCAN" = "No USB scanner" ] then { # Lire fichier audio qui dit pas de scanner branché echo "pas de scanner branché" play /home/mamie/.scan/pas_de_scan.ogg } else { echo "super le scanner est branché" #Maintenant on effectue scan scanimage --progress --mode=Color >/home/mamie/.scan/document | (for x in 2 4 6 8 10 12 14 16 18 20 30 40 50 60 70 80 90 95 ; do echo $x ; sleep 1; done)| zenity --progress --auto-close --title "Scanner et envoie par mail" --text="Scanner en cours " #on bascule sur le script de vérification et d'envoie par mail /home/mamie/.scan/mail-scan.sh } fi echo "fin du script 1" exit 0;
et
Code mail-scan.sh:
#!/bin/sh #on vérifie la taille du doc scanné pour savoir si ça a marché DOC=$(du /home/mamie/.scan/document | cut -f1) echo "$DOC" if [ $DOC -gt 2500 ]; then { # on envoie par mail echo "le scanner est pret et à fonctionné" #on converti en jpeg, grace à la commande convert du paquet imagemagick convert -quality 85 /home/mamie/.scan/document /home/mamie/.scan/document.jpg #on envoie le mail sleep 1 mutt -H /home/mamie/.scan/mail -a /home/mamie/.scan/document.jpg & (for x in 5; do echo $x ; sleep 10; done)| zenity --progress --pulsate --auto-close --title "Scanner et envoie par mail" --text="Envoie par e-mail à Catherine en cours " #nettoyer les fichiers laissés par mutt et générés par le scan rm /home/mamie/sent rm /home/mamie/dead.letter rm /home/mamie/.scan/document play /home/mamie/.scan/success.ogg } elif [ $DOC -eq 0 ]; then { #scanner branché mais dysfonctionnement : message d'erreur et stop echo "le scanner ne marche pas, il faut le débrancher et le rebrancher" play /home/mamie/.scan/error_scan.ogg rm /home/mamie/.scan/document } else { # on attends que le scanner soit pret on recommence echo "Le scanner n est pas pret, on attends et on recommence" rm /home/mamie/.scan/document # on attends et on relance le sann sleep 18 /home/mamie/.scan/scan.sh } fi rm /home/mamie/.scan/document.jpg exit 0;
Je ne vais pas détailler tout le script surtout que je l'ai bien commenté (#en bleu) pour décrire ce qu'il fait. Mais grosso-modo :
- On vérifie que le scanner est branché et sinon, on joue un fichier audio qui dit à mamie de brancher le scanner,
- On scan le document et on bascule sur le script 2,
- On vérifie que ça a marché. Si oui le document scanné fait une taille supérieure à 2500Ko, et alors on convertit en jpeg et on envoie par mail
- Si le scanner à un problème de pilote (il est branché mais ne réponds pas) le document fait 0Ko. On préviens avec un fichier audio que ça n'a pas marché
- Si le scanner est en train de s'initialiser (juste après être allumé) il ne scanne pas. Le document fait 4Ko (donc ni 0 ni >2500). Il suffit d'attendre la fin de l'initialisation et relancer le scan.
En plus des messages audio, on utilise zenity pour afficher des fenêtres pop-up de progression du processus. Si vous avez lu le code attentivement vous aurez noté que la progression du scanner est fictive (c'est juste une implémentation d'une variable 10, 20 , 30, etc...). Ok, c'est moche mais la durée de scan est toujours la même, alors pourquoi s'arracher les cheveux à essayer de récupérer le pourcentage d'avancement de scanimage plutôt que de simuler....
Et voilà, la magie de l'informatique à encore opérée : en un seul clique le papier de la mamie se transforme en document virtuel qui arrive dans la boîte mail de sa fille !
Ordinateur pour grand-parents, ordinateur pour papy, ordinateur pour personnes âgée, linux pour mamie, linux pour papy, linux pour personne âgée, linux pour grands-parents.