手元のマシンでMovable TypeとWordPressをインストールできたので、早速、BloggerPostのテストをしようと思ったのだが、なんと、WordPressではAtomでの投稿ができないことが分かった。ガーン。Movable Typeもソースコードを見てみると、Atomより、XML-RPCの方ができることが多い。まあ、これは分かっていたことだが。
WordPressは、日本では人気の面でMovable Typeの後塵を排しているものの、本国アメリカではNo.1の人気らしい。せっかく複数のブログサービスに対応したというのに、これでは、なんだか居心地が悪い。というわけで、XML-RPC対応を追加してみた。
しかし、「してみた」と言うのは簡単だが、実際は結構大変な作業だった。XML-RPC版そのものの実装はそれほど苦労はしなかったのだが、全体的にコードがAtom前提の作りだったので、これを修正するのが大変だった。ログやコマンドラインオプションも全部変更しなきゃならなかった。
XML-RPC版を実装してみて思ったのは、やっぱりAtomの普及はなかなか大変そうだなということ。XML-RPC版のAPIも拡張を繰り返していて、なかなか酷いキメラ具合なのだが、それぞれの関数は単純なので、サーバによって動作がズレることが少ない。Movable Type用に作ったもので、WordPressもTypePadもそのまま動いた。しかし、Atomのマルチ対応は、そんなに簡単じゃなかった。Atomの0.3 と1.0で違うところが多いし、まだまだ、0.3の実装が多い。しかし、同じ0.3でも、レスポンスのボディにどんなものが返ってくるか、各社まちまちで、新しいサーバーをテストするたびに、微調整しなければならなかった。HTMLのように、実装が標準に追い付くのに時間がかかるのだとすれば、気の遠くなるような話だ。
というわけで、今回のXML-RPC対応で、以下のサーバーで動作が確認できた。
- WordPress
- Movable Type(mt_atomでAtom版も一応使える)
- TypePad(typepad_atomでAtom版も一応使える)
- ココログ(TypePadと同じなので、ついでに)
確認はしていないが、XML-RPC対応しているサーバーだったら大体動くんじゃないかな。
それと、ついでにカテゴリー対応もした。Movable Typeのコードを見れたので、比較的簡単に実装できた。Atomでは、dc:subject要素を使えば良い。XML-RPCでは、mt.setPostCategoriesを使う。Movable Typeでは、タグとカテゴリーの併用ができる。
もう一つの新機能は、完全に趣味なのだが(いや、このBloggerPost自体趣味だが)、Yahoo! ファンタジーサッカーの自チームを簡単にブログに貼り付けられる機能。
Yahoo! IDがchatoraaichanzだとして、
bpyahoofs:chatoraaichanz:fp
と書くと,
位置 | 選手 | チーム | 年俸 | fp |
---|---|---|---|---|
合計 | 3億8900万 | 63fp | ||
GK | 松代 直樹 | G大阪 | 4200万 | 8fp |
DF | 児玉 新 | 清水 | 3100万 | 8fp |
DF | 那須 大亮 | 横浜FM | 2600万 | 9fp |
DF | ネネ | 浦和 | 4000万 | 7fp |
MF | 遠藤 保仁(C) | G大阪 | 1億1500万 | 12fp |
MF | 成岡 翔 | 磐田 | 1200万 | -2fp |
MF | 梶山 陽平 | F東京 | 3000万 | 1fp |
MF | 安田 理大 | G大阪 | 600万 | 8fp |
MF | 藤本 淳吾 | 清水 | 4300万 | 6fp |
FW | マルケス | 横浜FM | 2800万 | 3fp |
FW | 平山 相太 | F東京 | 1600万 | 3fp |
このようにテーブルで表示される。チームプロフィールは公開にしなければならない(でも、みんな、研究室を使うために、公開にしてるよね?)。記法の末尾のfpを消せば、テーブルのfpの部分も消える。年俸とfpは直近の結果から読みこんでいる。だから、リアルタイムで使わないといけないので、その点は少し不便。
あと、地味な機能だけど、bphttp記法というのを作ってみた。リンクをコンテンツのタイトルで置き換えてくれる機能だ。例えば、
bphttp://yu-u.blogspot.com/
と書くと、
<a href="http://yu-u.blogspot.com/">life is uneasy (for pancake)</a>
というHTMLに置き換えてくれるという機能。はてな記法に似たようなのがあったのでパクってみた。
しかし、そろそろフィルタは、ちゃんとHTMLをパーズして実行しないと駄目だね。ちょっといじる度に、デグレが怖くてビクビクしている。実はトラックバック機能実装のときに、概要を作るためにREXMLでパーズしているんだよね。色々な書式を許しているので、トラブルのが怖くて、本格的にREXMLを使うことは避けていたんだけど、BloggerはXHTMLしか受けつけないので、大丈夫なはず。できれば、Hpricotなんてのも使ってみたいのだが、あんまりgems に頼るとインストールが面倒臭くなるので、REXMLで我慢することにする。
UIの実装は難航している。やっぱり、UIは、やることが多い。なかなか、今までみたいにサクサク実装というわけにはいかないね。
0 件のコメント:
コメントを投稿