Categories
php tecnologia

Migrare il proprio blog da Splinder a WordPress 2.3.x

splinder to wordpress importer
Qualche giorno fa, un losco individuo, mi ha chiesto di aggiornare un plugin per migrare blog da Splinder/Motime a WordPress. Ne è uscito un piccolo lavoro di riscrittura ed aggiornamento che pare, dai test fatti, funzionare discretamente.

Il fatto è che attualmente il plugin, anzi l’importer, necessita di un po’ di test.

Quindi se avete intenzione di migrare il vostro blog da Splinder ad una installazione locale di WordPress (niente supporto diretto a WordPress.com, ma si può fare in altri modi) scaricatevi lo script in questione e copiatelo nella cartella wp-admin/import dell’installazione di WordPress sul vostro server.

Dopo di che aggiornate la template di Splinder facendo in modo che sia presente il seguente codice:

<Blogger>
<div class='ss-permalink'>:PERMALINKS:<$BlogItemPermalink$>:ENDPERMALINKS:</div>
<div class='ss-post-title'>:POSTTITLE:<$BlogItemTitle$>:ENDPOSTTITLE:</div>
<div class='ss-post-text'>:TESTO:<$BlogItemBody$>:ENDTESTO:</div>
<div class='ss-post-date'>:POSTDATA:<$BlogItemDateTime$>:ENDPOSTDATA:</div>
<div class='ss-post-cats'>:POSTCATEG:<$BlogItemCategories$>:ENDPOSTCATEG:</div>
<div class='ss-post-author'>:POSTAUTHOR:<$BlogItemAuthor$>:ENDPOSTAUTHOR:</div>
<div class='ss-comments'>:POSTCOMMENT:<$BlogItemCommentList$>:ENDPOSTCOMMENT:</div>
</Blogger>
:BLOGPAGER:<$BlogPager$>:ENDBLOGPAGER:

Infine seguite gli stessi passi riguardanti la configurazione dell’account di Splinder che chiedeva anche Francesco Terenzani, cioè:

Attivare l’impaginazione del blog.
Configura > Impaginazione > Attiva la paginazione del blog: spuntate la voce “Sì”
Potete anche aumentare il numero di post per pagina, questo velocizzerà un po’ l’importazione. Con certe configurazioni di PHP aumentare il numero di post per pagina è indispensabile per evitare un timeout dello script.

Cambiare il formato dell’ora.
Configura > Impaginazione > Formato dell’ora: Selezionate il formato simile a questo “27/09/2006 17:25″

Adesso dal backend di WordPress andate in Manage->Import->Splinder/MoTime e seguite le istruzioni a video.

Ultime note riguardo a questa prima fase di test dell’importer:

  • per funzionare l’importer ha bisogno di PHP 5.2 con modulo CURL abilitato. Se non sapete se il vostro server lo supporta o meno, chiedetelo all’ help-desk, non a me
  • mi piacerebbe ricevere segnalazioni di bug, non richieste di features (a meno che non siano indispensabili).
  • lo script tende, per blog molto corposi e con molti messaggi, ad ammazzare i server o ad andare in timeout… usatelo con cautela, in futuro valuterò di trovare soluzioni alternative per lo spider o almeno a risolvere problemi di timeout facendo ripartire la sessione da dove è stata interrotta.
  • è possibile, una volta importati i post da un blog di Splinder, cancellarli tutti in automatico. Quindi potete provare più volte la stessa importazione senza troppi problemi
  • non è presente un controllo per post doppi o senza titolo, se il post è doppio comparirà due volte se è senza titolo verrà inserito un titolo fittizio.
  • Infine, cosa più importante di tutte, non migro blog di chicchessia! Per questo genere di lavoro c’è già chi si impegna anima e corpo…

Qui trovate il file incriminato: splinder importer 0.6.7 e la sua vecchia versione 0.6.6.

UPDATE
Ho aggiornato l’importer (riscaricatelo) tra le novità introdotte:

  • controllo dei post già importati per evitare post doppi
  • migliorata l’importazione in caso di timeout
  • fatta un po’ di pulizia del codice
  • cancellazione dei post importati e dei metadati salvati

UPDATE 2
Ulteriore aggiornamento (ora la versione è la 0.6), tra le novità:

  • possibilità di scaricare ogni singola pagina degli archivi indipendentemente
  • possibilità di analizzare il blog prima di iniziare i download (da fare per abilitare il primo punto)
  • ulteriore pulizia del codice e refactoring dei metodi di importazione
  • possibilità di limitare il numero di post da importare per ogni giro (per evitare il timeout)

UPDATE 3
Ulteriore aggiornamento (ora la versione è la 0.6.4), tra le novità:

  • migliore importazione dopo errori
  • fix per caratteri non utf8
  • addslash per titoli con apici (e mal interpretati da wp 2.3.2)

UPDATE 4
Ulteriore aggiornamento (ora la versione è la 0.6.5), tra le novità:

  • corretto il baco che non permetteva di salvare le opzioni

UPDATE 5
Ulteriore aggiornamento (ora la versione è la 0.6.6), tra le novità:

  • aggiungo strip_tags per i titoli di splinder

UPDATE 6
Ulteriore aggiornamento (ora la versione è la 0.6.7), tra le novità:

  • aggiornata la regexp per l’ultima pagina dell’archivio

ciuaz

128 replies on “Migrare il proprio blog da Splinder a WordPress 2.3.x”

Io ho provato lo script (da soloinsuperficie.splinder.com a soloinsuperficie.com). Ha importato 30 post su 99. Immagini il motivo?

Fullo, grazie mille per esserti fatto carico di questo impegno… mi sento molto più leggero :)

ti segnalo un bug già presente nel mio, nella funzione purge_comment_author il nome di chi commenta viene riconosciuto con questa porzione di espressione regolare:

([\w\d \._-]+)

Solo che non considera molti caratteri che credevo Splinder non permettesse (*, ^,…).

Volendo potresti sostituirlo con:

([^\n\t\r]+)

Ciao e grazie ancora :P

@Ted

Il processo di importazione più ci sono post più è lungo e credo che dopo i primi 30 post sia terminato il tempo massimo di esecuzione che il tuo provider ha settato per script PHP (max_execution_time).

Quindi se hai accesso al file php.ini e lo puoi in qualche modo modificare dovresti aumentare il valore della variabile max_execution_time in modo che gli script PHP abbiamo più tempo prima di essere “uccisi” dal server perchè occuno per troppo tempo delle risorse.

Sarebbe comunque meglio installarsi WordPress in locale come consigliato da Fullo in modo che puoi settare il valore del max_execution_time a piacimento e non avere problemi di questo tipo. Una volta terminata l’importazione procedi alla messa online del tutto.

Grazie Davide, ho aumentato il tempo (l’importazione la facevo già in locale), ma i post importati sono sempre di meno rispetto al totale. Mi segnala 99 post, ma poi la maggior parte sono occupati da un paio di post che si sdoppiano in geminazione, quasi.

Altri errori sono i titoli, che li scrive così “titolo-del-post”, e la data, uguale per tutti i post, fissata al momento dell’importazione.

@ted mi dai l’url del tuo blog che provo da me in locale? Hai provato a cancellare le importazioni vecchie e rifarle da capo?

ciao a tutti, sono maia e i due solo in superficie per cui ted si sta sbattezzando sono blog miei.
Ora, dire che io non ci capisco nulla è dire davvero poco. Per me state parlando arabo. io so solo che sto cercando di passare da splinder a wp e mi piacerebbe tanto (eufemismo) non perdermi nemmeno un post.
Signor fullo, Vostra Grazia, Eminenza, se mi potesse aiutare gliene sarei davvero grata. Mi dica quello che devo fare ed io eseguo.
Però parli come a una bambina di tre anni, la prego.
Che ho qualche difficoltà informatica…

@maia, come ho scritto nel post NON faccio migrazione di blog. Ho fatto una domanda ben precisa a ted per capire quale potrebbe essere il problema, ma più di così non farò.

@Fullo, l’URL in questione è http://soloinsuperficie.splinder.com

Il template al momento non è adattato agli standard dello script, perché maia lo ha risistemato subito dopo l’import. A questo è dovuto l’intervento di Maia. Giusto per capire se doveva rimettere il template in quel modo :-)

A ogni modo, già cancellate, già rifatte. Fa sempre la stessa cosa.

Ciao Fullo, purtroppo l’importazione del mio blog non ha avuto per niente successo… Ho installato easyphp in locale abilitanto l’estensione curl richiesta, ho aumentato il tempo massimo di esecuzione dello script per non avere problemi di time out.

Purtroppo l’importazione è stata un disastro:
1) I post non sono stati importati complitamente, l’importazione si è fermata tipo a giugno dell’anno scorso…
2) Nel risultato dell’importazione su diversi post compariva la scritta ERRORE in rosso…
3) Le categorie non corrispondono affatto, ne escono credo 5 quando in realtà dovrebbero essere molte molte di più…

Spero proprio riusciate a far andare questo importer come si deve, serve proprio… Voglio liberarmi di splinder però non voglio perdere anni di blogging :)

PS: ho risistemato il template subito dopo il mio sfortunato tenatativo, se vuoi contattami su msn e lo riadatto all’importer quando vuoi, se hai bisogno di fare qualche test. Il mio contatto è l’email con la quale sto commentando.

Accidenti!! Scusami se sto postando un commento dietro l’altro ma le cose mi vengono a pezzi… Tra i risultati negativi dell’importazione ho dimenticato di citare il fatto che ogni post mi viene importato 2 o 3 volte…

grazie, prima di tutto, per il lavoro di aggiornamento del plugin; non ho, però, ancora provato perchè nell’inserire nel template del blog di splinder il codice indicato ottengo per ogni post un suo duplicato dove si vede il codice stesso.
Inserisco il link ad un’immagine del blog di splinder:
http://www.matebi.it/imm/mtb.gif

E’ normale che accada?
Grazie ancora
mt

;) ti ringrazio, ho appena finito di importare i post di splinder, non ho usato un installazione remota… ma è andata tutta alla grande… ;) grazie mille :)

Ho provato il pugin.
Ho 158 post da importare su WP ma ne carica unicamente 10 non sequenziali (alcuni sono tra i primi scritti, altri tra gli ultimi 10) e, per quelli che importa, imposta in ogni caso la data e l’ora corrente.
Mentre i commenti li importa tutti dal primo all’ultimo.
Ho tentato di capire quale discriminante gli facesse selezionare dei post piuttosto che altro, ho limitato a 10 i post da importare (ho tolto l’impaginazione e settato a 10 il numero di post per pagina) e continua a caricare sempre i soliti due che anche prima, in importazione full-blog, mi caricava importando, comunque tutti i commenti dei dieci presenti.
Pur tentando di riavviare l’importazione considera tutti e dieci importati, ma nel DB Mysql sono presenti solo quei due.
Capisco che sia una gran rottura fare una plugin per dare un aiuto e ritrovarsi gente che cerca aiuto, ma se potessi spiegarmi se c’è qualche possibilità avrai la mia imperitura riconoscenza. Che non vale una cippa, ma vuoi mettere la soddisfazione? :P
Grazie.

@novecento stai importando in locale? che timeout hai messo agli script php? che uso massimo di memoria? hai spento tutti i client P2P attivi mentre fai il lavoro? I post non importati come compaiono su splinder? Con la nuova template o la vecchia?

@mtb devi sostituire la vecchia template con la nuova. La quale mostrerà il blog abbastanza “brutto”, quindi si è normale…

Sto importando in remoto, in quanto non saprei come fare in locale.
i post non importati appaiono identici a quelli importati.
Ho cercato di cogliere eventuali differenze nei testi e nei dati, ma non ve ne sono di visibili.
Nonostante abbia provato moltissime volte, mi carica sempre gli stessi 10, mai uno diverso.

Ho trovato come installare in locale usando wamp.
Ad ogni tentativo di importare in locale ottengo questo:

Importazione articoli
Sto analizzando il blog

e lì si blocca tutto.

Allora, ho ovviato all’errore di cui sopra attivando php_curl.
Il plugin, anche in locale, su una linea Alice 7mb senza p2p attivi e pc dualcore con 4mb di ram, mi importa sempre i soliti 10 post.
Tutto sembrerebbe indicare che la colpa sia dei post, ma onestamente non capisco cosa possa essere a renderli non importabili mentre i loro commenti si.

ps, il timeout l’ho impostato a 1800. Prima, quando era al default di 30, il prcesso si bloccava dandomi errore. Ora va allo stesso modo in cui operava facendo l’importazione direttamente online.

Fullo, allora, ho dei problemi simili a nOvecento in locale.
Mi importa i post tutti sotto la data d’import (i commenti vanno bene, invece). Dopo sessanta post, forse meno, importa sempre lo stesso (siamo sull’ordine dei 100 post).
I titoli appaiono come “titolo-di-esempio”.

Ho aumentato il tempo più che potevo e non è cambiato granché.

La cosa strana è che nel menu dell’importer, invece, i post appaiono importati regolarmente. Poi provo a visualizzarli e nisba e non sono presenti nelle lista dei post.

Se vuoi darci un occhio, l’url è http://soloinsuperficie.splinder.com

Grazie
Edo

Ok, fullo, ora è andata. Sono riuscito a sbagliare nel copincolla :P

Una piccola cosa è rimasta: il titolo scritto “esempio-di-titolo”. Ma si corregge a mano.
Grazie di tutto, alla prox!
e.

Scusa, fullo, torno a disturbarti. Ho esultato troppo presto.
Ora i post hanno la data corretta, ma ne viene importata sempre una minima parte. Ne mancano molti all’appello.
Sai dirmi perché?

stai facendo il download in locale? hai abbastanza banda? che SO usi? che versione di php? hai chiuso tutti i prg di p2p?

In locale, sì. Ho una 20megabit, uso OS X, nello specifico MAMP col php alla 5.2 come richiesto, non uso, se non di rado, programmi p2p.

fullo, grazie lo stesso.
Con il tuo plugin se non altro ho importato tutti i commenti. Ho trasferito i post a mano e ricollegato i commenti agli articoli.
Faticoso ma meglio che nulla di certo.

@ted la domanda era “usi p2p mentre provi il plugin?” con le connessioni atitve di un qualsiasi client p2p rischi di perdere connessioni e di causare timeout.

per PHP controllate di avere

memory_limit = 256M
max_execution_time = 600 (almeno)
max_input_time = 600 (almeno)

Fullo, mi avevi chiesto: “hai chiuso tutti i prg di p2p?” e dicendoti che non li uso, intendevo dire che erano chiusi, tutto qui.

Aumenterò i parametri (mi sa che solo memory_limit non è in quegli standard) e scaricherò il plugin aggiornato appena possibile.
Thanks

Ciao Fullo, so che mi odierai, ma non lo fare :)

L’unico problema che mi rimane è il numero dei post. Mi segnala di aver importato 100 post e sono invece 63. Ho notato che non riesce a importare post come questo, questo o questo.

Ho usato tutte le opzioni. Importazione totale, importazione per pagina, importazione a blocchi. Dà sempre lo stesso problema. Ho cancellato e reimportato, ma la sostanza non cambia. Una trentina di post non vengono importati.

Ripeto: non odiarmi :-)

nuovo update, testate. Adesso il plugin dovrebbe poter gestire apici interpretati e caratteri UTF8 senza problemi. La mancata importazione era dovuta a problemi di gestione di caratteri particolari da mysql

Facendo l’analisi del blog da importare l’importer mi da il seguente errore:

WordPress database error: [MySQL server has gone away]
INSERT INTO wp_options (option_name, option_value, autoload) VALUES (‘splinder_import’, ‘a:6:{s:10:\”post_persi\”;s:0:\”\”;s:8:\”blog_url\”;s:36:\”http://nomeblog.splinder.com\”;s:10:\”permalinks\”;a:173:{i:0;s:14:\”/post/14804437\”;i:1;s:14:\”/post/14761216\”;i:2;s:14:\”/post/14745604\”;i:3;s:14:\”/post/14647127\”;i:4;s:14:\”/post/14617688\”;i:5;s:14:\”/post/14386823\”;i:6;s:14:\”/post/14281067\”;i:7;s:14:\”/post/14248886\”;i:8;s:14:\”/post/14243940\”;i:9;s:14:\”/post/14232542\”;i:10;s:14:\”/post/14225100\”;i:11;s:14:\”/post/14154764\”;i:12;s:14:\”/post/14115131\”;i:13;s:14:\”/post/13949620\”;i:14;s:14:\”/post/13775291\”;i:15;s:14:\”/post/13633584\”;i:16;s:14:\”/post/13533815\”;i:17;s:14:\”/post/13505276\”;i:18;s:14:\”/post/13354531\”;i:19;s:14:\”/post/13135953\”;i:20;s:14:\”/post/13118502\”;i:21;s:14:\”/post/13040678\”;i:22;s:14:\”/post/13026843\”;i:23;s:14:\”/post/12846617\”;i:24;s:14:\”/post/12528641\”;i:25;s:14:\”/post/12502367\”;i:26;s:14:\”/post/12349167\”;i:27;s:14:\”/post/12268501\”;i:28;s:14:\”/post/12231993

Ho seguito tutta la procedura, modificando le impostazioni di php.ini

Da cosa può dipendere?

@asdrubalino dove stai facendo l’importazione? pare che mysql sia schiattato durante il lavoro. Se sei tu tophost, altervista o simile ti consiglio di desistere perchè hanno un limite di query/minuto.

grazie mille, ho aspettato un po’ ma ne è valsa la pena, anche l’ultimo blog rimasto incatrato su splinder è passato su wordpress

@scatterhead… leggi le istruzioni sul funzionamento

Cambiare il formato dell’ora.
Configura > Impaginazione > Formato dell’ora: Selezionate il formato simile a questo “27/09/2006 17:25″

Comments are closed.