Tumblrről Bloggerre migrálás

A rövidebb, nem kidolgozott és nem feltétlenül Java-val kapcsolatos post-okat eddig a Tumblr-en írtam, de most átköltöztettem a Blogger-re (Blogspot), melyen a JTechLog blog is van.

  • A Tumblr többször áll, csak a migráció során, mely két éjszaka tartott, mind a kétszer leállt
  • Az ékezeteket nem jól kezeli, HTML forráskód szerkesztése közben HTML entitásokra cseréli
  • Nagyon nehezen testre szabható, mivel nem lehet hozzáférni a teljes HTML forráshoz
  • Nem támogatja a hosszú bejegyzések szerkesztését (nincs automatikus mentés)
  • Mikor a Lightbox-szal akartam integrálni, eltávolította a HTML rel attribútumokat, így gyakorlatilag kivitelezhetetlen volt a célom.
  • Nem lehet megjegyzéseket fűzni a bejegyzésekhez
  • És számomra a legfontosabb, nem mindig működött a post-jaim közötti keresés
  • A migráció során először a Tumblr-ből kellett kinyerni a post-okat, majd ezt beimportálni a Blogger-re. A kinyerés viszonylag egyszerűen történt, egyszerű API-val rendelkezik, mely XML-ben adja vissza a blog bejegyzéseket. Itt csak arra kell figyelni, hogy alapértelmezetten 20-asával adja vissza, de ez feljebb tehető, maximálisan 50-re. Az így darabokban visszaadott XML-t így is össze kell fűzni. A Blogger-re kétféleképpen lehet betölteni a post-okat. Vagy használjuk az API-ját, melyről remek leírás van, sőt Java API-val is rendelkezik. Vagy megpróbáljuk az Export/Import formátumát. Az Export/Import formátumát azért vetettem el, mert egy példa export nagyon bonyolult, és nem dokumentált, hogy mi kell belőle, és mi nem. Egy-két próba után fel is adtam. Utána próbáltam a Java API-t. Ez szépen is működött, de pár próbálkozás után a következő kivételt kaptam.

    Caused by: com.google.gdata.util.InvalidEntryException: Bad Request
    Blog has exceeded rate limit or otherwise requires word verification for new posts
    
          at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:594)
          at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)
    

    Kiderült, hogy spammer-nek nézett, és letiltotta a hozzáférést. Várhattam volna 24 órát, akkor újra lehet próbálkozni. A felületen is ellenőrző képet (word verification, captcha) kellett megadnom, de ezt API szinten nem vezették ki, így nem tudtam hozzáférni.

    Így vissza kellett térnem az eredeti elképzeléshez, méghozzá egy importálható XML előállítására. Végül sikerült egy XSLT transzformációt gyártanom (az XSLT állomány letölthető), melyet a Tumblr XML-jén lefuttatva a kapott XML-t már beimportálta a Blogger. A transzformációból kiderül, hogy melyek azok a kötelező tag-ek, melyeket meg kell adni az XML-ben. Csak a regular bejegyzéseket támogatja, idézeteket, képeket, videókat, stb. nem. Az XSLT transzformációra a parancssori XMLStarlet eszközt használtam, és a következő parancsot adtam ki.

    \xmlstarlet-1.0.3\xml.exe tr tumblr2blogger.xsl tumblr.xml > tumblr2blogger.xml
    

    Így végre a jól megszokott Blogger-re tudtam migrálni a Tumblr tartalmat.