以前、google Ad-senseを登録したときに、gooブログではスクリプトタグが使えないということを初めて知り、そのときから引っ越したいなとは思っていたのですが、私は変なところで潔癖症なので、以前の記事をすべて引っ越してきたいと思っていて、それは面倒だなと思って引越しに対して少ししり込みしてしまっていたのです。
しかし、いい加減gooブログの操作性の悪さに業を煮やし、引越しを決意しFC2ブログにアカウントを登録しました。
その後引越しの方法をいろいろと調べていて、最初は
このような専用ツールを使って引越しするしかないのかな?と思っていたのですが、調べたところgooブログアドバンスであれば意外と簡単に引越しできるということが、以下の記事を見てわかりました。
ekken: gooブログアドバンスからFC2ブログヘの引越しのヒント
gooブログアドバンスなら記事のバックアップ(エクスポート)ができるということは以前から知っていたのですが、その形式は独自形式と聞いていたので、Microsoft Outlookのメールのような、煮ても焼いても食えない形式だと思い込んでいたのですが、よく見てみると普通の平文テキストでした。
しかも、若干違いはあるものの、ほぼFC2ブログのエクスポート形式および、MT(ムーバブルタイプ)形式に近いものであることがわかりました。
これだけ似てるんなら最初から同じフォーマットにしといてくれりゃいいのに・・・。という気もしますが、まあテキストでできていたのは幸いです。私は一応Perlを書けるので、この程度なら簡単に変換スクリプトが書けそうだと思いました。
・・・。
と思ったのですが、最近プログラムを作っていなかったせいか相当てこずりました。結果、できたのが以下のスクリプトです。もし使用したいという方がおられましたら、御自由にお使いください。 ただ、動作の保証はありませんので、このスクリプトが原因で記事が消失したなどといったクレームには応じかねます。動作させる際は、元記事のバックアップをきちんと取った上で行なってください。
gooブログアドバンスからFC2形式への変換スクリプト
一応、推奨ファイル名は「goo2fc2.pl」です。
ActivePerlがインストールされている環境下で、Perl.exeにパスが通っている状態であれば、ログのあるフォルダに移動し、
C:\> perl goo2fc2.pl daibutsu.txt > daibutsu_fc2.txt
という感じで使用してください(元ファイルがdaibutsu.txt、変換先ファイルがdaibutsu_fc2.txt)
ちなみに、FC2ブログの標準エクスポート形式は、EUC-JP+UNIX改行(\n)ですが、gooブログアドバンスはSJIS+Windows改行(\r\n)です。が、FC2ブログのログインポート機能は賢いことにSJIS+Windows改行でも認識してくれますので、コード変換する必要はありませんでした。
私はmixiの日記も書いていたのですが、もともと筆不精な人間なので、ブログと両方更新することができず、mixiをまめに更新していた時期はブログが滞りがちになり、ブログをまめに更新するとmixiが滞りがちになるという状況でした。ということで、この際mixi日記もFC2ブログに取り込みたいと思いました。
mixi日記のエクスポートについては、
mixi_exportを使わせてもらいました。これは、mixi日記を
aDiaryという日記ソフトに取り込める形式(xml形式)にするソフトです。
一所懸命探してみたのですが、どうしてもmixi日記を直接MT形式でエクスポートできるソフトは見つかりませんでしたので、これを使わせてもらうことにしました。最初、aDiary形式のログをFC2の形式に変換するスクリプトも書くつもりだったのですが、xmlのタグの解析は思ったより大変そうだったので素直にあきらめ、自分のPCにaDiaryをインストールし、いったんaDiaryに取り込み、その後MT形式でエクスポートするという形を取りました。
そして、ようやくすべてFC2への引越しが完了した!!と思ってよく見ると、なぜかコメントの順番がぐちゃぐちゃになっています。何かの拍子に、順番がおかしくなってしまったようです。gooブログアドバンスのエクスポートの時点からおかしかったのかなと思ったのですが、そんなことはないようです。仕方ないので、以下のようなスクリプトを書いてコメントを時系列にソートしなおし、再度FC2でログの取り込みを行ないました。
FC2形式のログのコメントを時系列にソートするスクリプト
こんなスクリプトを必要とする方が他にいるかどうかは知りませんが、誰かの役に立つかもしれないので掲載しておきます。
最初、このようなスクリプトを書こうと思ったとき、面倒そうなのでどうしようか悩んだのですが、いざ書いてみればたったこれだけのスクリプトですんでしまいました。やはり、Perlはすばらしいですね。
では、これからもよろしくお願いします。