Nel precedente articolo spiegavo come utilizzare le Google Blogger Data Api per pubblicare post sulla piattaforma di blogging di google.

Lo studio di tali API aveva come obiettivo la realizzazione di un piccolo tool per la pubblicazione automatica su Blogspot da blogs ospitati su piattaforme differenti: per dirla semplice, "ho un blog su wordpress.com, lo voglio 'migrare' su blogspot e magari tenere aggiornata questo 'mirror', come fare senza utilizzare plugin aggiuntivi? (che, tra le altre cose, wordpress.com non permette di installare)".
Ho realizzato quindi una prima bozza di applicazione (in VB.NET) che si occupasse di scorrere un Feed RSS e pubblicare in maniera automatica quanto letto su un blog ospitato su Blogger, tenendo naturalmente conto di quando già pubblicato.

Successivamente ad una prima versione in VB.NET, ho effettuato la conversione in Python, garantendomi la compatibilità con Linux e Mac senza ricorrere all'utilizzo di Mono.
L'idea di trasformare il tutto in una WebApp mi frullava per la testa (sarebbe stato bello rendere il tutto fruibile anche da iPhone e dispositivi simili): Google App Engine mi è venuto in aiuto.

Basata interamente su Python, la piattaforma di 'application hosting' fornita da Google mi permetteva di riutilizzare quanto già scritto senza grosse modifiche e, 'giocando in casa', mi permetteva di utilizzare il sistema di autenticazione interno per passare le credenziali a Blogspot.

Prendiamo ora in considerazione la stessa funzione da me realizzata in VB.NET, convertita per funzionare sul Google App Engine:

l'unica differenza con la precedente è il metodo utilizzato per controllare la presenza o meno del post che si sta per pubblicare.
Nella versione in VB effettuavo una query su Blogger, scorrendo tutti i post e confrontandone il titolo con quanto stavo per pubblicare.

Sull'App Engine mi sono quasi subito scontrato con le limitazioni di quota: se un processo utilizza troppi cicli di CPU, l'applicazione viene momentaneamente 'bloccata'.
Cosa che accadeva continuamente, essendo il vecchio metodo di controllo non proprio parco nell'uso della CPU.

Per risolvere il problema mi sono appoggiato sul DataStore interno all'AppEngine: ogni post inserito viene archiviato, in modo che un successivo ciclo di sincronizzazione escluda automaticamente quanto già pubblicato senza dover andarselo a cercare accedendo a Blogger.

La primissima beta della WebApp la trovate all'indirizzo http://bloggersync.appspot.com.

L'utilizzo è estremamente semplice: una volta effettuato il login con il vostro account di Google e autorizzato BloggerSync ad accedere ai dati di Blogger, verrà visualizzata una scarna pagina contenente i titoli dei blog legati all'account, con accanto un campo di testo da compilare con il Feed Rss scelto come 'fonte' per la pubblicazione.

Con la pressione del pulsante "Pubblica da RSS" si da il via alla procedura di copia dei contenuti, che si conclude con un report di quanto pubblicato (in quanto nuovo) e quanto già presente e quindi non aggiunto. Il feed inserito viene salvato e riproposto al successivo accesso.

L'applicazione è ancora immatura, devo occuparmi di risolvere ancora parecchi bugs (come un fastidioso timeout quando viene effettuata primissima operazione di copia), quindi utilizzatela 'as-is' e a vostro rischio e pericolo.

Un'ultima nota: leggendo queste righe, molti avranno pensato "simpatico questo, rilascia questo tool e ora sai quanti si divertiranno a copiare i blog altrui!". Per arginare almeno in parte il problema, l'applicazione si prende la briga di aggiungere in coda a ogni post pubblicato un link ben evidente alla fonte. :-)