2012/04/03

seesaa2movabletype

ほいできました。
seesaaからエクスポートした記事データファイルの日付形式をMovable Type形式に変換するだけのヤッツケスクリプト。
seesaa2movabletype
あはは、コードめっさ汚い。
所々Javascriptの標準的な書き方から外れてるし、Javascript書きから見たらすげー気持ち悪いコードなんだろうなあ。

zipファイルを解凍してできたフォルダの中のindex.htmlをFirefoxかChromeで開く。
ボタンをクリックでファイルダイアログが出てくるので、エクスポートしたファイルを選択(複数選択可)して「開く」。
複数ファイルの場合はその合計サイズが1MBより小さくなるように。
読み込めれば「Run」ボタンが有効になるのでクリック。
読み込んだファイルの数だけ「File: hogehoge.log ...Done」みたいなメッセージが出て、その後downloadのリンクが出るのでそいつをクリック。
Chromeだとそのままダウンロードできるみたいだけど、Firefoxだと新しいタブに開く。
この場合はそのタブへ行って右クリックで「名前を付けてページを保存」。
複数ファイルを読み込んだらここで一つにまとまってる筈。
こいつをMovableType2Bloggerで変換すると、日付がおかしくならずにBloggerインポート用のxmlファイルが出力される筈。
で、できたxmlファイルをBloggerにインポートすればOK。
今日の時点ではね。
いつMovableType2Bloggerが無くなるか分からないし、いつSeesaaがエクスポートファイルの仕様を変更するか分からないし。

多分Firefoxのがイイね。
Chromeはなんか設定せんといかんっぽいけど、その仕方が判らない。
起動時引数を与えたらいいとかいう話を読んだけど、現バージョンのChrome18だとそれではダメっぽい。
レジストリいじるのもいややしなあ。
ってことで、Firefoxのがいいんじゃないかね。多分何もしなくていけると思う。
フォルダの中の他のは、script.jsが私の書いた汚えコードで、moment.jsとjquery.jsがMIT Licenseのjsライブラリ、style.cssがスタイルシートですな。
一応決めとくと、script.jsはパブリックドメインで。

使うときは自分でちゃんと確かめて使ってください。
解らなかったら手を出さないが正解。
まあ誰がつかうねんっちゅう話でもあるだけど。
あと私もうメンテとかしないので。


ヤッツケるのにめっさ時間掛かった。
流石に泣きそうになったね。
コアの部分はMoment.js使ったら一瞬でできたんだけど。
Moment.jsを使えば何も考えずに日付や時間をいじれる。ちょー楽。
一箇所でしか使ってないけど、これを標準のDateでやろうとすると、10行ぐらい要りそう。
10行ぐらい書けって?だが断る。
Rubyとかなら標準ライブラリで同じようなことができるんだけど、Javascriptは標準のDateがイマイチ使い勝手悪いんだよな。
あとjQueryはdocument.getElementByID("hoge")とか書くのが面倒臭いから使ってる感じだけど、あると何かと便利。

一番の問題はファイル入出力。
完全に見立てが甘かった。
File APIのW3Cの説明見てもあんましよく解らないし。
ファイル読み込みが非同期なので、いつ読み込み+後処理が終わったのか判らないってのも苦戦した。
せめてJavascriptにwait()とかsleep()とかがあればもう少し楽だったんだけど。
取り敢えず500msあれば読み終わるだろうってんで、setTimeout()で処理ファイルのインデックス番号*500ms、というなんかすげー気持ち悪い処理をしている。
今落ち着いて考えればもう少し他の仕方があったけど・・・。
まあ書き直すのメンドい。
ファイル書き込みも取り敢えずこういうことだろうってので書いてるけど、私この部分ちゃんとは理解してない。
File API: Writeをパッと見た感じ、なんかもう一寸うまい方法がありそうだけど。
メンドい。


Seesaaがまたメンテで書き込めない。
マジで心が折れる。
てことで、Bloggerで記事を書くのはこれが最初。