Overblog Suivre ce blog
Administration Créer mon blog
8 septembre 2014 1 08 /09 /septembre /2014 16:00

sms-icon.pngPour les clients free mobile, il existe une possibilité d'envoyer un sms depuis son ordi à son téléphone. Cela peut être utile, par exemple, si vous voulez être averti d'une fin d'exécution d'un programme, mais pas seulement...
Pour cela, il vous faut activer l'option de notfication. Pour ce faire, rendez-vous à l'adresse suivante http://www.freenews.fr/spip.php?article14817 et suivez les instructions.
Il vous sera délivré une clé d'identification. Muni de celle-ci ainsi que de votre identifiant, vous allez pouvoir envoyer votre texto dans le terminal. Dans un premier temps, il nous faut écrire un petit script (sms.sh par ex.)
#!/bin/bash
#id=7808....
#cle_de_d'identificaion jXkMR....
yes "yes" | w3m -dump "https://smsapi.free-mobile.fr/sendmsg?user=votre_identifiant&pass=clé_d_identification&msg=$1"
Rendez ce script exécutable, puis dans le répertoire où il se trouve, ouvrez le terminal et lancez :
bash sms.sh "Chérie, n'oublie pas le pain...". Et voilà le texto atterrit sur votre téléphone. Ce bout de code pourrait être inclus dans un autre script aux fins de notifications diverses.

source : http://forum.ubuntu-fr.org/viewtopic.php?id=1664551

p.s. comme indiqué dans la souce ci-dessus, il n'est pas inutile de créer un alias et de l'inclure dans le .bashrc. Celui-ci se trouve dans /home/user.



Repost 0
Published by neo-joko - dans scripts
commenter cet article
22 mars 2014 6 22 /03 /mars /2014 10:49

terminal2L'utilisation du clic droit pour lancer des scripts requérant le mode terminal peut s'avérer compliqué. En effet pour ouvrir un terminal dans un script on lance habituellement la commande gnome-terminal -e "la commande" ou gnome-terminal -x la_commande. Ceci, hélas, ne fonctionne pas bien, par exemple, avec la commande read -p "entrez une valeur" val.
Pour contourner ce problème on va lancer un terminal dans un terminal !
Le script (peerflix) ci-dessous lance le script peerflix_core.sh (dans le lequel se trouve la commande de read).

#!/bin/bash
gnome-terminal -x bash /home/user/.gnome2/nautilus-scripts/peerflix_core.sh

Le script peerflix_core.sh :
#!/bin/bash
JAUNE="\033[1;33m"
RAZ="\e[m"
echo -e "${JAUNE}PeerFlix${RAZ}"
read -p ">> " h
peerflix magnet:?xt=urn:btih:$h --vlc

Avec cette méthode, le read -p s'exécute sans aucun problème.
Dans le prochain article je reviendrai sur ce dernier programme plus en détail.

Repost 0
Published by neo-joko - dans scripts
commenter cet article
20 janvier 2014 1 20 /01 /janvier /2014 09:16

Playlist.png

Je me retrouvais souvent confronté au problème d'écouter les dernières musiques téléchargées. En effet, par souci de clarté, je classe mes morceaux par genre musical. Il s'en suit que pour écouter les plus récents de chaque (sous) répertoire, il fallait que je le fasse à la main. Voici donc un petit script qui m'a affranchi de ce pénible labeur.

#!/bin/bash
#on se place dans le répertoire de musique -- à changer selon arborescence
cd "/media/FreeAgent Drive/musique"

#on efface play_list.m3u option -f au cas où play_list.m3u n'existe pas
rm -f play_list.m3u

#on affiche une fenêtre zenity pour la date de départ
date_depart=$(zenity --calendar --text='date de départ ?' --title='Musiques')
jour="$(echo $date_depart | cut -d\/ -f1)"
mois="$(echo $date_depart | cut -d\/ -f2)"
annee="$(echo $date_depart | cut -d\/ -f3)"

#on va créer un fichier fic_ref dont la date de création est "annee-mois-jour"
touch --date "$annee-$mois-$jour" fic_ref


#on cherche tous les fichiers qui sont aussi ou plus recents (-newer) que fic_ref
#et on envoie le resultat dans play_list.m3u
find . -newer fic_ref -name \*.mp3 >play_list.m3u

#on lance audacious (ou un autre player) avec play_list_m3u comme play list
audacious play_list.m3u

Enregistrez ce script et éventuellement référencez-le via alacarte. Associez-lui une icône jolie (ou pas). Enfin, dans le dash, tapez le nom de votre script et glissez l'icône dans la barre des lanceurs.

Et voilà !

Repost 0
Published by neo-joko - dans scripts
commenter cet article
24 avril 2013 3 24 /04 /avril /2013 17:33

tradef.pngQui a dit qu'informatique et plaisir des lettres ne faisaient pas bon ménage ? Je vais vous livrer trois contre exemples.
Il s'agit de scripts réalisés par un usager d'ubuntu.fr et par votre serviteur.
Le premier conçu par Ph3nix_ vous permet de trouver les synonymes d'un mot, par exemple tapez dans le terminal : syno étoile
et vous obtiendrez :
synonyme (27) :
acteur, artiste, as, astérisque, astre, ballerine, carrefour, chance, crédit, croisée, croisement, danseuse, décoration, destin, destinée, échangeur, fortune, hasard, patte-d'oie, pelote, planète, puissance, rond-point, sort, star, trèfle, vedette            


Classement synonyme :
astre, carrefour, destin, destinée, rond-point, star, vedette, acteur, artiste, as,

Pour de plus amples explications rendez-vous au lien suivant :

http://forum.ubuntu-fr.org/viewtopic.php?id=1183731
Le second est un traducteur multilingue inspiré de Ph3nix_ que j'ai "personnalisé à outrance" et le code n'est pas des plus optimisés.
Dans un premier temps copiez le code ci-dessous dans un fichier que vous pourriez appeller trad.sh et le placer dans un répertoire bien identifiable comme /home/utilisateur/scripts/trad/

#!/bin/bash
RAZ="\e[m"
JAUNE="\033[1;33m"
BLEUCLAIR="\033[1;36m"
ROUGE="\033[1;31m"
FUSHIA="\033[1;35m"
VERT="\033[1;32m"    #GREEN
BLANC="\033[1;37m"    #WHITE

echo -e "${BLEUCLAIR}================================================================================${RAZ}"
wget -q -U "Mozilla/5.0" "http://traduction.sensagent.com/$1/$2-$3/"
html2text index.html > trad.txt
mot=$1
chaine1="\*\*\*\*\*\ "
chaine="$chaine1$mot\ ($1"
chaine2="$mot\_("
# le /f/ aurait pu être /h/ ou autre en attendant vérif
sed -n -e "/^\*\*\*\*\*/,/f/p"  trad.txt > trad1.txt
sed -n -e "/^[^*/,/\]/p" trad1.txt > trad2.txt

#on remplace les _ par un espace
chaine_a=$(sed -n '1p' trad2.txt)
chaine_a=`echo $chaine_a | sed "s/[_?]/ /g"`
chaine_b=$(sed -n '2p' trad2.txt)
chaine_b=`echo $chaine_b | sed "s/[_?]/ /g"`
chaine_c=$(sed -n '3p' trad2.txt)
chaine_c=`echo $chaine_c| sed "s/[_?]/ /g"`
car_control=${chaine_b:0:1}
car_control_chaine_c=${chaine_c:5:1}

if [ "$car_control" == "=" ] || [ "$chaine_b" == "" ]
then
echo -e "${VERT}Ce mot n'a pu être extrait ou n'existe pas ${RAZ}"
    #on regarde si mot inexistant
else
#on vérifie si doublon entre b et c
if [ "$chaine_b" == "$chaine_c" ]
then
chaine_c=""
fi
#on vérifie doublon entre chaine a et chaine b"
if [ "$chaine_a" == "$chaine_b" ]
then
chaine_b=""
chaine_c=""
fi

#on vérifie que la cahine c ne retourne une "francophonie --nom de pays Italie (n.)
chaine_franco="$mot (n.)"
if [ "$chaine_c" == "$chaine_franco" ]
then
chaine_b=""
chaine_c=""
fi

#on regargde si chaine_c commence par "↗" ou "↘"  "[" ou contient "voir aussi" ou vide
car_control=${chaine_c:0:1}
chaine_c="$chaine_c"
if [ "$car_control" == "↗" ]|| [ "$car_control" == "↘" ]|| [ "$chaine_c" == "voir aussi" ]|| [ "$car_control" == "[" ]|| [ "$chaine_c" == "dictionnaire analogique" ]|| [ "$car_control" == "" ]|| [ "$car_control" == "≠" ]|| [ "$car_control" == "[" ]|| [ "$car_control_chaine_c" == "=" ]
then
chaine_c=""

#sinon chaine c peut être intéressante et o ajoute un\n à la FIN de chaine b, on marque cette chaine avec un flag
else
flag="vrai"
fi

#on regarde si la chaine_b est "inintéressante", si oui on reset chaine à chaine_a
car_control=${chaine_b:0:1}
if [ "$chaine_b" == "voir aussi" ]|| [ "$car_control" == "↘" ]||[ "$car_control" == "↗" ]|| [ "$chaine_b" == "dictionnaire analogique" ]|| [ "$car_control" == "≠" ]|| [ "$car_control" == "[" ]|| [ "$chaine_b" == "" ]
#echo "             >$chaine_b<             "
then
chaine=$chaine_a
chaine_b=""
chaine_c=""


#si chaine b intéressante alors on ajoute un anti slash n
else
chaine_b="\n$chaine_b"
fi
if [ "$flag" == "vrai" ]
then
chaine_b="$chaine_b\n"
fi
echo -e "${BLEUCLAIR}${mot} : ${JAUNE}${chaine_a}${chaine_b}${chaine_c}.${RAZ}"
fi
echo -e "${BLEUCLAIR}================================================================================${RAZ}"
echo
rm -f index.html
rm trad*.txt
#------------------- fin du script trad.sh -------------------------

Dans une deuxième étape, on va créer un lien symbolique qui rendra ce script accessible depuis n'importe quel répertoire où le terminal est ouvert. Pour ce faire on affiche les fichiers cachés du répertoire /home. Ouvrez le fichier .bashrc (attention bien mettre le ".") et ajouter la ligne suivante : alias trad="bash /home/utilisateur/scripts/trad/trad.sh" [voir Note 1.]
Pour que l'alias prenne effet, déconnectez-vous puis reconnectez vous. Dans le terminal entrez : trad amour fr en et vous obtiendrez :
================================================================================
amour : love, lovemaking, poppet, lamb, darling, flame, baby, pet, sweetie, beloved,
love
love, enjoy.
================================================================================
Les traductions proviennent du site http://traduction.sensagent.com, utile pour connaitre les codes langues. Ils sont visibles dans la barre d'adresse.
Petite astuce tapez trad amour fr fr :-) Cela fonctionne aussi avec le code langue en, trad love en en. A tester pour les autres langues.

[Note 1] Il est plus aisé d'avoir à taper un lien symbolique que de faire dans un terminal : bash /home/utilisateur/scripts/trad/trad.sh, surtout si l'on s'en sert régulièrement.
Et pour finir, un script qui vous traduit en trois clic+entrée de l'anglais vers le français. Il s'agit quasiment du même script que précédemment mais avec l'anglais comme langue de départ et le français comme langue d'arrivée. Ainsi au lieu de taper trad mot en fr, on collera juste le mot à traduire dans le terminal suivi de "Entrée" Pour ce faire vous allez créer une entrée via alacarte à laquelle vous associerez l'icône de votre choix (sudo apt-get install alacarte).
D'abord copiez-collez le script suivant et enregistrez-le sous tradef.sh (par exemple).
#!/bin/bash
#rm index.html
RAZ="\e[m"
JAUNE="\033[1;33m"
BLEUCLAIR="\033[1;36m"
ROUGE="\033[1;31m"
FUSHIA="\033[1;35m"
VERT="\033[1;32m"    #GREEN

function trad {
echo -e "${BLEUCLAIR}================================================================================${RAZ}"
wget -q -U "Mozilla/5.0" "http://traduction.sensagent.com/$mot/en-fr/"
html2text index.html > trad.txt

#mot=$1 reliquat e la commande de trad.sh adaptation pour trad en vers fr
chaine1="\*\*\*\*\*\ "
chaine1="$chaine1$mot\ ($mot"
chaine2="$mot\_("

# le /f/ aurait pu être /h/ ou autre en attendant verif
sed -n -e "/^\*\*\*\*\*/,/f/p"  trad.txt > trad1.txt
sed -n -e "/^[^*/,/\]/p" trad1.txt > trad2.txt

#on rempkace les _ par un espace
chaine_a=$(sed -n '1p' trad2.txt)
chaine_a=`echo $chaine_a | sed "s/[_?]/ /g"`
chaine_b=$(sed -n '2p' trad2.txt)
chaine_b=`echo $chaine_b | sed "s/[_?]/ /g"`
chaine_c=$(sed -n '3p' trad2.txt)
chaine_c=`echo $chaine_c| sed "s/[_?]/ /g"`
car_control=${chaine_b:0:1}
car_control_chaine_c=${chaine_c:5:1}

if [ "$car_control" == "=" ] || [ "$chaine_b" == "" ]
then

echo -e "${VERT}Ce mot n'a pu être extrait ou n'existe pas ${RAZ}"
    #on regarde si mot inexistant
else
#on vérifie si doublon entre b et c
if [ "$chaine_b" == "$chaine_c" ]
then
chaine_c=""
fi
#on vérifie doublon entre chaine a et chaine b"
if [ "$chaine_a" == "$chaine_b" ]
then
chaine_b=""
chaine_c=""
fi


#on vérifie que la cahine c ne retourne une "francophonie --nom de pays Italie (n.)
chaine_franco="$mot (n.)"
if [ "$chaine_c" == "$chaine_franco" ]
then
chaine_b=""
chaine_c=""
fi



#on regargde si chaine_c commence par "↗" ou "↘"  "[" ou contient "voir aussi" ou vide
car_control=${chaine_c:0:1}
chaine_c="$chaine_c"

if [ "$car_control" == "↗" ]|| [ "$car_control" == "↘" ]|| [ "$chaine_c" == "voir aussi" ]|| [ "$car_control" == "[" ]|| [ "$chaine_c" == "dictionnaire analogique" ]|| [ "$car_control" == "" ]|| [ "$car_control" == "≠" ]|| [ "$car_control" == "[" ]|| [ "$car_control_chaine_c" == "=" ]
then
chaine_c=""

#sinon chaine c peut être intéressante et o ajoute un\n à la FIN de chaine b, on marque cette chaine avec un flag
else
flag="vrai"
#chaine_b="$chaine_b"

fi

#on regarde si la chaine_b est "inintéressante", si oui on reset chaine à chaine_a
car_control=${chaine_b:0:1}
if [ "$chaine_b" == "voir aussi" ]|| [ "$car_control" == "↘" ]||[ "$car_control" == "↗" ]|| [ "$chaine_b" == "dictionnaire analogique" ]|| [ "$car_control" == "≠" ]|| [ "$car_control" == "[" ]|| [ "$chaine_b" == "" ]

then
chaine=$chaine_a
chaine_b=""
chaine_c=""


#si chaine b intéressante alors on ajoute un anti slash n
else
chaine_b="\n$chaine_b"
fi
if [ "$flag" == "vrai" ]
then
chaine_b="$chaine_b\n"
fi
echo -e "${BLEUCLAIR}${mot} : ${JAUNE}${chaine_a}${chaine_b}${chaine_c}.${RAZ}"
fi
echo -e "${BLEUCLAIR}================================================================================${RAZ}"
echo

}
echo -e "${VERT}TRADUCTEUR ANGLO-FRANÇAIS${RAZ}"
#on appelle 1000 fois la fonction !!!
for i in `seq 1 1000`;
 do
  read -p ">>> entrez le mot : " mot
trad $mot
rm -f index.html*
rm trad*.txt
done
#------------------ fin du script --------------------------
Maintenant, lancez alacarte. Ajoutez une entrée dans la catégorie de votre choix (par exemple "Autre"). Dans la rubrique "Nom" entrez (toujours par exemple) Traducteur Anglais-Français et dans la rubrique commande renseignez : gnome-terminal -e  "bash /home/utilisateur/scripts/trad/tradef.sh"
Associez-lui l'icône de votre choix. Fermez le tout. Dans le dash de unity tapez Traducteur (sans préciser la suite). L'icône associée au script apparaît.
Glissez-la maintenant dans la barre des lanceurs. Cliquez sur celle-ci, un terminal s'ouvre et attend le mot anglais à traduire. Une façon très pratique de l'utiliser est de double-cliquer gauche sur un mot d'un document en anglais et cliquer-mollette dans le terminal suivi de "entrée".
Utilité ? Futilité ? A vous de voir...


Repost 0
Published by neo-joko - dans scripts
commenter cet article
17 septembre 2012 1 17 /09 /septembre /2012 11:08

radio meuh youtubeDans le précédent article, j'indiquais comment associer un script à une icône et «mettre le tout » dans la barre d'Unity. Aujourd'hui je vous propose de se servir de cette facilité et de récupérer le titre d'une musique et de l'écouter sur Youtube (aux fins d'un éventuel téléchargement via downloadhelper dans Firefox).

J'ai l'habitude d' écouter une excellente radio francophone : radio meuh http://www.radiomeuh.com/site/index.php. Dès que jentends un bon titre je sauvegarde la playlist courante. Cette dernière me servira à faire la recherche par la suite dans Youtube. J'ai réalisé ceci au travers deux scripts.

Le premier enregistre la playlist, le second lance Youtube avec sa barre de recherche DÉJÀ renseignée avec le titre du morceau qui passait lors de la sauvegarde de la playlist.

Dans la celle-ci le morceau qui m'intéresse est toujours indiqué en gras (et se situe en ligne 27 quand on lit son code html). C'est ce qui va être repris par le second script. Ce dernier va «analyser» la page, n'extraire que ce qui nous intéresse et lancer Youtube avec les références du titre (nom de l'artiste - album - titre).


J'ai appelé le premier script : playlist_meuh


#!/bin/bash

#on récupère la playlist

wget http://www.radiomeuh.com/site/playlist/index.php

#on la déplace sur le bureau

mv index.php /home/user/Bureau/play_list_radio_meuh.html 


 

le second s'appelle : chercher_youtube_playlist_meuh 


#!/bin/bash

#on se place d'office sur le bureau

cd /home/user/Bureau/

#on récupère la 27eme ligne c'est elle qui contient les références du titre joué lors de la "capture" de la playlist

chaine=$(sed -n '27p' play_list_radio_meuh.html)

 

#on envoie le tout dans un fichier temporaire toto.txt

echo $chaine > toto.txt

 

#on récupère les balises et ce qui il y a dedans

chaine=$(grep -o '<br.*/td>' toto.txt)

echo "$chaine" > toto.txt

 

#on remplace les balises par... rien

sed -i -e "s/<br>/ /g" toto.txt

sed -i -e "s/<br\/>/ /g" toto.txt

sed -i -e "s/<\/td>/ /g" toto.txt

sed -i -e "s/<BR.*/ /g" toto.txt

sed -i -e "s/&/ /g" toto.txt

#on récupère la ligne nettoyée

chaine=$(sed -n '1p' toto.txt)

  

#on envoie le contenu ce cette ligne dans le query de Youtube

firefox http://www.youtube.com/results?search_query="$chaine" 


 L'utilisation de ces deux scripts est triviale. D'abord lancez la récupération de la playlist, puis lancez le second script. Ce dernier vous ouvrira une page Youtube sous Firefox avec les références musicales DÉJÀ indiquées dans la barre de rechercher Youtube. A l'usage vous verrez que c'est d'un très grand confort d'utilisation.

 


Repost 0
Published by neo-joko - dans scripts
commenter cet article

Présentation

  • : Le blog de neo-joko - linux
  • Le blog de neo-joko - linux
  • : blog consacré au système d'exploitation linux (essentiellement ubuntu et l'environnement du bureau gnome/unity)
  • Contact

Recherche