Thunderbird: usare l'ultimo post di Twitter come firma

Tempo fa su Lifehacker avevano presentato un programmino che inseriva nella firma di Outlook l’ultima entry di un feed RSS, il programma però non funzionava con Mozilla Thunderbird :-P. Prendendo spunto da questo e dalla firma random presentata su Mente Digitale (che fra l’altro è un SPB :-)), mi è venuto in mente di creare un piccolo script Python per inserire come firma dei Messaggi di posta l’ultima entry di Twitter. Nel caso specifico lo script funziona solo con Mozilla Thunderbird ed è multi piattaforma. Teoricamente si potrebbe utilizzare un qualunque feed RSS e non limitarsi a quello di Twitter, però con un feed normale ci sarebbero dei problemi aggiuntivi che date le mie non eccelse doti di programmatore non sono al momento capace di risolvere, in un futuro si vedrà :-).

I problemi riguardano la lunghezza delle entry nei normali feed, che sono troppo invadenti per potersi usare come firma in una mail, nonchè il problema di gestire la formattazione HTML della entry stessa; con il feed di Twitter questi due inconvenienti sono risolti direttamente alla fonte: una entry di Twitter è un breve messaggio che ha al massimo 160 caratteri e non contiene nessuna formattazione HTML. Tagliare il feed dopo 160 caratteri è semplice, più complicato sarebbe fare un taglio “intelligente”, e gestire la formattazione a seconda che si usi una firma HTML o una firma in puro testo. Per tagliare la testa al toro per ora lo script funziona solo con i feed di Twitter :-P.

Requisiti:

Non mi dilungo oltre su come installare Python, ne su come installare il modulo Feedparser, in caso qualcuno dimostri interesse posso provare a “compilare” (non è proprio una compilazione in realtà) lo script con py2exe in modo da farlo funzionare come file EXE, nel qualcaso cercherò di scrivere qualcosa a prova di gengiscan2005 (beh forse questo è difficile :-P).

Qui di seguito il codice che va salvato nella stessa cartella in cui si trova il file usato come firma in Mozilla Thunderbird e che io ho chiamato twittersig.py:

File: twittersig.py

# File twittersig.py - autore: gialloporpora
# 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/1320531.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=r"e:\firme\firma.txt"
# crea l'oggetto file
file_firma=open(nome_file_firma,"w")
# 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
firma=x['entries'][0]['title']
# 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.write(firma.encode("utf-8"))
# chiude il file
file_firma.close()

I parametri da modificare sono:

  • twitter_feed – l’indirizzo del feed di twitter;
  • nome_file_firma – il nome (eventualmente con il relativo percorso) del file utilizzato come firma in Mozilla Thunderbird;
  • opzionale – la codifica caratteri utilizzata per comporre i messaggi.

Per togliere eventuali problemi legati al PATH si può utilizzare un file BAT per lanciare lo script:

PATH=%PATH%;C:\Python24\
python twittersig.py

Per eseguire lo script ogni TOT secondi io ricorrerei alle operazioni pianificate di Windows, su Mente Digitale invece viene spiegato come derogare questo compito al file BAT stesso. Il file Choice.com utilizzato per impostare l’attesa nell’esecuzione non è però disponibile su Windows XP, potete scaricarlo da qui, o scegliere un modo alternativo per settare l’attesa in un file BAT, che consiste nel fare “N” ping a localhost. Personalmente non è che mi piaccia molto, in ogni caso inserendo una riga del genere nel file BAT:

ping -n 60 127.0.0.1 >NULL

si blocca l’esecuzione dello script per circa un minuto. Ritengo comunque preferibile la scelta di utilizzare le Operazioni pianificate. Nel post su Mente Digitale viene spiegato come creare il file VBS per bloccare il pop-up della shell dei comandi e come ottenere la stessa cosa su sistemi Linux (dove la cosa è molto più semplice anche perché Python è incluso in molte distribuzioni).

0 Responses to “Thunderbird: usare l'ultimo post di Twitter come firma”


  • No Comments

Leave a Reply