Reagisco alla pigrizia di FriendFeed.
Dato che FriendFeed è ubriaco ho deciso di scrivere un semplice bot Python per importare i nostri Tweets sul social network tornado-based. Da qualche giorno, FriendFeed si rifiuta di importare i nostri tweets in quanto ci sono problemi con il sistema di autenticazione oAuth.
Utilizzando entrambi i social network e non volendo fare copia ed incolla ogni volta, mi sono armato di editor di testo ed ho iniziato a scrivere un bot Python per risolvere il problema. In fine ho deciso di condividere con voi il codice che avevo realizzato.
Una cosa importantissima da fare è disabilitare l’auto pubblicazione su twitter dei contenuti di FriendFeed: se non disabiliterete questa opzione andrete a creare un loop infinito di tweets
Quindi spostiamoci su FriendFeed nella pagina di impostazioni di Preferenze di pubblicazione su Twitter (oppure cliccate qui). A questo punto non dovrete fare altro che disabilitare “Post my FriendFeed entries on Twitter by default” come nell’immagine sottostante:
A questo punto siamo pronti per importare i nostri tweets su FriendFeed! Ma prima di iniziare abbiamo bisogno di alcune librerie python. La prima in particolare è quella di FriendFeed: Tramite questa potremo autenticarci e pubblicare i contenuti. Di questa libreria esistono due versioni: la 1.0 e la 2.0! A noi interessa esclusivamente la versione vecchia (la 1.0) poiché ci permetterà di autenticarci utilizzando username e Password (oppure usando una chiave remota ). Potete scaricare la libreria tranquillamente da questo indirizzo e decomprimere il contenuto nella stessa cartella in cui andremo a scrivere il nostro codice. Questo archivio contiene anche altre librerie che non ci interessano (php e csharp) che potrete cancellare tranquillamente.
Una libreria che ci servirà assolutamente è quella di Twitter. In particolare la libreria si chiama python-twitter e se utilizzate GNU/Linux, è già disponibile nei repository di quasi tutte le distribuzioni esistenti.
Sembrerà strano, ma ci servirà anche django. Infatti la nostra lingua utilizza anche le lettere accentate e simboli che non possono essere utilizzati. Le librerie ed i moduli messi a disposizione di Django includono una funzione chiamata smart_str che trasforma le nostre lettere accentate in codice ASCII.
Installato tutto il necessario possiamo aprire un editor di testo ed iniziare a scrivere il seguente codice:
import twitter import friendfeed from django.utils.encoding import smart_str data_username = 'USERNAME' # Sostituire con username data_password = 'REMOTEKEY' # Sostituire con password o remotekey twapi = twitter.Api() ffapi = friendfeed.FriendFeed(data_username,data_password)
Con questo codice abbiamo importato le librerie necessarie ed impostato le API di Twitter e di FriendFeed. Ovviamente al posto di USERNAME e REMOTEKEY dovrete inserire il vostro username e la vostra password. In alternativa potete utilizzare una chiave remota che potete reperire da questo indirizzo. Questo programmino presuppone che utilizziate lo stesso username sia per FriendFeed che per Twitter! Ora scriviamo il ciclo che controlla le nostre twittate e le invia a FriendFeed:
statuses = twapi.GetUserTimeline(data_username) for status in statuses:
ffapi.publish_message(smart_str(text))
Salviamo il codice nel file chiamato importer.py e chiudiamo. A questo punto non ci resta che avviare lo script che abbiamo appena scritto e vedere che tutti i nostri tweets saranno importati su FriendFeed!
Come potrete notare i contenuti multimediali inclusi nei tweets (foto & video) saranno mostrati automaticamente anche su FriendFeed! Quindi non ci dobbiamo preoccupare se le nostre foto saranno o meno importate!
Essendo questo un codice molto spartano, ho ampliato le sue caratteristiche. Ad esempio ho aggiunto la regola di non importarmi i tweets che contengono risposte ( “@tizio: come va?”). Ho in oltre aggiunto la possibilità di demonizzare il programma facendolo lavorare in background: ogni 5 minuti esegue il controllo salvando su un database i dati, in modo da non ripetere l’operazione ed importare più volte lo stesso tweet! Vi ricordo che i demoni possono essere eseguiti solo in sistemi operativi Unix-like ( MacOS & GNU/Linux ).
Se siete interessati al codice sorgente di questo demone o semplicemente volete eseguire il download dello scriptino, troverete tutto il necessario cliccando qui. Se utilizzerete questo codice, vi prego di commentare questo post: mi fa piacere sapere che sono stato utile a qualcuno!

