Premessa: la guida si riferisce a Ubuntu Linux e Thunderbird 7, ma può essere adattata ad altre distro e versioni del programma.
Vediamo come si fa ad inserire un link ad uno degli ultimi articoli del proprio blog nella firma di Mozilla Thunderbird.
Per prima cosa creiamo un file di testo contenente la firma "base" che vogliamo utilizzare in Mozilla Thunderbird, nel mio caso è la seguente:
*/Willy/* - *Contatti*: http://snipurl.com/contatti * *FAQ* di /it-alt.comp.software.mozilla/: http://www.FAQmozilla.org * *Gratuiki* - Software Free: http://gratuiki.willygroup.org
Salviamo il file in una posizione a cui possiamo accedere tranquillamente, ad esempio la cartella Documenti della nostra home: /home/UTENTE/Documenti/firma_no_blog.txt 1
Facciamone altre due copie e rinominiamole così: firma.old.txt e firma.txt
Lanciamo Mozilla Thunderbird ed andiamo a configurare la firma in Mozilla Thunderbird facendola puntare al nostro file firma.txt
Adesso siamo pronti per scrivere lo script, io solitamente creo gli script in una cartella all'interno della home e poi creo un link simbolico in /usr/local/bin che punta al file dello script
Supponiamo di aver salvato il file che conterrà il nostro script nella posizione: /home/UTENTE/Documenti/Script/feed per prima cosa lo rendiamo eseguibile, da terminale:
Quindi andiamo a creare il collegamento all'eseguibile:
Ora apriamo il file feed con un editor di testo (gedit/medit vanno benissimo, altrimenti se volete operare da terminale potete usare vi, nano o quello che più vi piace), ed inseriamo il codice:
#!/usr/bin/env bash # File temporaneo dove verrà salvato il feed FILE="/tmp/blogfeed.txt"; # Indirizzo del Feed RSS da utilizzare FEED="https://blog.willygroup.org/feed" # Numero degli ultimi post che si vogliono linkare :: "Inserisci un post a caso tra gli ultimi 5" NUM_POST=5 # FILE TEMPORANEI PER TITOLI E LINK TMP_TITOLI="/tmp/titoli.txt" TMP_LINK="/tmp/link.txt" # Nome utente UTENTE="willy" #Crea copia backup della firma cp "/home/$UTENTE/Documenti/firma.txt" "/home/$UTENTE/Documenti/firma.old.txt" # Recupera il feed del blog wget -O $FILE $FEED # Controlla se ci sono stati problemi durante il download e quindi se il file risulta vuoto if [ ! -s $FILE ] then # In caso di file vuoto ripristina l'ultima firma cp "/home/$UTENTE/Documenti/firma.old.txt" "/home/$UTENTE/Documenti/firma.txt" else RIGA=`echo $RANDOM%$NUM_POST | bc` RIGA=`expr $RIGA + 1` xmlstarlet sel -t -m '//item' -v 'title' -n $FILE > $TMP_TITOLI xmlstarlet sel -t -m '//item' -v 'link' -n $FILE > $TMP_LINK rm /home/$UTENTE/Documenti/firma.txt cp /home/$UTENTE/Documenti/firma_no_blog.txt /home/$UTENTE/Documenti/firma.txt # Recupero Titolo e link TITOLO=$(head -n $RIGA $TMP_TITOLI | tail -n 1); LINK=$(head -n $RIGA $TMP_LINK | tail -n 1); # Utilizzo un servizio online per creare link corti: goo.gl SHORTLINK=$(curl -s -d '&url='$LINK http://goo.gl/api/url | sed -e 's/{"short_url":"//' -e 's/","added_to_history":false}/\n/'); # Accodo titolo e link corto alla firma base echo "* $TITOLO: $SHORTLINK" >> /home/$UTENTE/Documenti/firma.txt; fi
Il precedente codice è un po' rozzo, critiche e consigli sono ben accetti.
Per eseguire lo script basta lanciare da terminale:
Se vogliamo che questo script venga lanciato ogni tot minuti, ad esempio 20, dobbiamo scomodare la funzione cron di Unix, da terminale:
e quindi inseriamo sotto a:
la riga:
Ed abbiamo finito!
[Aggiornamento 21/03/2012]: È stata modificata l'api per goo.gl, nel riquadro sottostante metto in evidenza la modifica che è stata apportata anche al codice sopra:
# SHORTLINK=$(curl -s -d '&url='$LINK http://goo.gl/api/url \ # | sed -e 's/{"short_url":"//' -e 's/","added_to_history":false}/\n/'); SHORTLINK=$(curl https://www.googleapis.com/urlshortener/v1/url -H \ 'Content-Type: application/json' -d '{"longUrl": "'$LINK'"}' \ | sed -n 's/.*\(http:\/\/goo.gl\/[A-Za-z0-9][A-Za-z0-9]*\).*/\1/p');
Note:
- sostituire a UTENTE il proprio username ↩