Categorie

Archivio Articoli

Categorie

Commenti recenti

[upd:21-03-2012] Thunderbird su Ubuntu: usare gli ultimi articoli di un blog WordPress come firma

thunderbird-logoPremessa: 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:

$ chmod +x /home/UTENTE/Documenti/Script/feed

Quindi andiamo a creare il collegamento all'eseguibile:

$ sudo ln -fs /home/UTENTE/Documenti/Script/feed /usr/local/bin/feed

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:

$ feed

Se vogliamo che questo script venga lanciato ogni tot minuti, ad esempio 20, dobbiamo scomodare la funzione cron di Unix, da terminale:

$ crontab -e

e quindi inseriamo sotto a:

$ # m h dom mon dow command

la riga:

$ */20 * * * * /usr/local/bin/feed

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:

  1. sostituire a UTENTE il proprio username

Thunderbird su Mac OsX: usare l'ultimo Tweet come firma

Twitter-Mac-ThunderbirdScopiazzando Prendendo spunto da questo articolo di gialloporpora ho modificato leggermente il codice in python che permette di utilizzare l'ultimo post Tweet di Twitter come firma su Mozilla Thunderbird. Il mio codice prende in ingresso un file con le prime righe della firma e restituisce un nuovo file la cui ultima riga corrisponde all'ultimo post su Twitter (se al momento della lettura del feed dovesse avere dei problemi aggiunge una frase predefinita).

Ultimo Tweet nella firma di Thunderbird

Ultimo Tweet nella firma di Thunderbird

Questo è il codice che ho modificato partendo da quello di gialloporpora (se ci sono errori potete dovete segnalarli nei commenti! :-P).

Per funzionare necessita del modulo Universal Feed Parser.

# File twittersig.py - autore: gialloporpora
# modificato da: willygroup
# importa il modulo feedparser.py
import feedparser
 
# nella variabile twitter_feed va inserito il feed che volete sia usato
# per la firma delle vostre email
twitter_feed="http://twitter.com/statuses/user_timeline/ID-TWITTER.atom"
 
# *nome_file_firma* deve contenere il percorso del file usato come firma
# in Thunderbird, se il file twittersig viene creato nella stessa cartella
# in cui si trova il file di firma
# non e' necessario specificare il percorso, ma solamente il nome del file
# stesso, in ogni caso, per evitare di dover fare l'escape dei backslash
# (\\ al posto di \) viene definita come stringa grezza
# (r che precede la stringa stessa)
nome_file_firma_origine=r"PosizioneFirmaOriginale"
nome_file_firma_destinazione=r"PosizioneFirmaModificata"
 
# crea l'oggetto file
file_firma=open(nome_file_firma_origine,"r")
file_firma_new=open(nome_file_firma_destinazione,"w")
file_firma_new.write(file_firma.read())
 
# usa il metodo parse definito nel modulo feedparser per leggere il feed
x=feedparser.parse(twitter_feed)
 
# la prima entry del feed viene usata come firma se non viene trovata
# alcuna entry viene utilizzata una riga di default (attenzione: i
# comandi da eseguire nell'if e nell'else devono essere indentati!)
if len(x['entries'])>0:
          firma="* "+x['entries'][0]['title']
else:
          firma = "RigaDiDefault"
 
# scrittura del file di firma, e' necessario utilizzare la giusta codifica
# caratteri, se si utilizza una codifica diversa da utf-8 nella composizione
# dei messaggi e' necessario modificare utf-8 con la codifica in uso
file_firma_new.write(firma.encode("utf-8"))
 
# chiude i file
file_firma_new.close()
file_firma.close()

Per aggiornare la firma occorre eseguire lo script python da terminale.

Si può fare da terminale:

 python   twittersig.py

oppure si può automatizzare l'esecuzione dello script utilizzando Lingon (lo sviluppo è stato abbandonato da un paio d'anni, ma funziona ancora), configurandolo in questo modo (clicca sull'immagine per ingrandirla):

Lingon

Altri metodi per automatizzare l'esecuzione di programmi e script sotto Mac OsX li potete trovare descritti in questo articolo.

Fonti:

http://www.gialloporpora.netsons.org/thunderbird-usare-lultimo-post-di-twitter-come-firma/210/

http://jeby.blogspot.com/2008/06/launchd-eseguire-operazioni.html

http://sourceforge.net/projects/lingon/files/

Altri articoli che potrebbero interessare:

Mettere le ultime news del blog in firma (Thunderbird) | Il blog che non c'è