Portál AbcLinuxu, 30. dubna 2025 10:54

migrácia blogu z myblogsite.com -> blogger.com

31.12.2005 18:02 | Přečteno: 1735× | poslední úprava: 2.1.2006 10:39

Pred pár týždňami mi zrušili blog na myblogsite.com (stal sa plateným) a tak som bol prinútený premýšľať čo s ním. Príspevky som zazálohoval do .xml súboru a začal pokukovať po serveroch, kam by som ho naimportoval. Celkom sa mi pozdával blogger.com, no bohužiaľ neposkytovali službu pre import súborov z myblogsite.com. Rozhodol som sa teda, že sa o to pokúsim vlastnými silami.

Upozornenie: Nasleduje veľmi nevzhľadný bash kód, ktorý som počas dnešnej noci dal - i vďaka pomoci ľudí na irc - dokopy. Za prípadné žalúdočné ťažkosti súvisiace s pohľadom na môj kód neručím (!). Napriek tomu, aká to je prasárna, funguje. No, teda až na pár výnimiek. Nefunguje import komentára (je treba ich ručne odstrániť) a prípadné odklony od striktného XML je treba upraviť ručne. Kód nie je dobre okomentovaný, ale snáď z neho pochytíte, čo som sa snažil povedať :-)
#!/bin/bash
# blog.xml -- XML subor z myblogsite.com
grep -v "blogTitle\|blogLink\|.*channel>\|[Cc]omment\|<excerpt>\|<category>\|<channel>\|<convertBreaks>\|<allowTrackbacks>\|<author>\|<createDate>" blog.xml \
| sed -e "s/<item type=\"article\">/<entry xmlns=\"http:\/\/purl.org\/atom\/ns#\">/" \
| sed -e "s/<\/item>/<\/entry>/" \
| sed -e "s/<pubDate>\(.*\), \(.*\) \(.*\) 2005 \(.*\) \(.*\)<\/pubDate>/<issued>2005-\3-\2T\4Z<\/issued>/" \
| sed -e "s/<postStatus>.*/<generator url=\"http:\/\/www.sem-pride-url.blogu\">curl<\/generator>/" \
| sed -e "s/<formatType>.*/<content type=\"application\/xhtml+xml\">/" \
| sed -e "s/<body>/<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">/" \
| sed -e "s/<\/body>/<\/div><\/content>/" \
| sed -e "s/<title>/<title mode=\"escaped\" type=\"text\/plain\">/" \
| sed -e "s/-Oct-/-10-/g" \
| sed -e "s/-Sep-/-09-/g" \
| sed -e "s/-Aug-/-08-/g" \
| sed -e "s/-Jul-/-07-/g" \
| sed -e "s/</</g" \
| sed -e "s/>/>/g" \
| sed -e "s/&/\&/g" \
| sed -e "s/"/\"/g" \
| sed -e "s/<[Bb][rR]>//g" \
| sed -e "s/<[Ii][mM][gG] \([^>]*\)>/<img \1><\/img>/g" \
| sed -e "s/\(.*\)\"text\/plain\"><\/title>/\1\"text\/plain\">dummy<\/title>/g" \
| sed -e "s/ / /g" \
| tr '\n' '\a' \
| sed -e "s/<\/content>\([^>]*[^y]>\)*<\/entry>/<\/content><\/entry>/g" \
| tr '\a' '\n' \
| sed -e "s/[hH][eE][iI][gG][hH][tT]=\([0-9]*\) \([^ ]*\) /height=\"\1\" /g" \
| sed -e "s/[wW][iI][dD][tT][hH]=\([0-9]*\)\([^ >]*\)/width=\"\1\"\2/g" \
| sed -e "s/align=\([^>]*\)>/align=\"\1\">/g" \
| csplit - "/<entry/" {100} # cislo 100 -- pocet blogovych prispevkov (zistit pokus-omylom )
mkdir 2
mkdir log
for file in xx*; do
	cat header $file >2/$file # subor header obsahuje <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
	curl -u username:password -H 'Content-type: application/atom+xml' --data-binary @$file https://www.blogger.com/atom/1234567890 >2/$file >log/$file # username:password nahradte skutocnymi udajmi, rovnako ako blog ID
done
# zoradte si subor v log/ podla velkosti a zistite, s ktorymi bol problem (najmensia velkost)
# problemy odstrante rucnou editaciou chybne formatovanych suborov (x??)

Tento skriptík zvládol bezchybné importovanie 2/3 môjho blogu, čo nie je až také zlé. Keby som sa bol býval držal XML, mohlo to byť oveľa lepšie (najviac problémov bolo s chýbajúcim párovým tagom </LI>).

Snáď tento príspevok niekomu poslúži aspoň ako študijná referencia (príp. odstrašujúci príklad).

       

Hodnocení: 17 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

31.12.2005 18:36 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
Rozbalit Rozbalit vše Re: import blogu do blogger.com (atom?)
Odpovědět | Sbalit | Link | Blokovat | Admin
Příspěvky o JXP se týkají portálu, dokonce i Linuxu. Tvůj dotaz jde zcela mimo, tak třeba proto. Jsi schopen říct, jakou XML aplikaci ten dump používá?
Math, as Barbie says, is hard.
31.12.2005 18:41 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
Rozbalit Rozbalit vše Re: import blogu do blogger.com (atom?)
O Atomu si můžeš přečíst například zde.
Math, as Barbie says, is hard.
jose17 avatar 31.12.2005 19:48 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
Rozbalit Rozbalit vše Re: import blogu do blogger.com (atom?)
hej, o štruktúre atomu už som si počítal, ale stále neviem, ako napríklad poslať post/get request. ideálne z bashu (ak to ide)
Ja vim, on vi, ty nano!
31.12.2005 20:23 Marian Krucina | skóre: 13
Rozbalit Rozbalit vše Re: import blogu do blogger.com (atom?)
wget ?

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.