こんなプログラムが、Ogawa::Memorandaさんで公開されていた。

Movable TypeでAtomフィードやRSSフィードを静的に生成するとき、最新の指定個数のエントリーしか対象にならないのが面白くないとは思いませんか。

正直に言うと、使い道はよく分からない(苦笑)

ていうか、これ単体で何か画期的なことが出来る…わけではなくて、
これを利用して、何かが出来る…んだと思う。
うーん。

まぁでも興味があったので試してみました。

必要な情報は、例によって、wikiにそろってます。

PaginatedFeed.ja JP - Ogawa Code

ファイルをダウンロードして解凍し、MTディレクトリにアップ。
mt-pfeed.cgiパーミッションを調整。

次にテンプレート>モジュールにて、
指定されたとおりに、テンプレートモジュールを作成。

で、適当なオプションを付けて、
mt-pfeed.cgiにアクセスすると、あら不思議!フィードが生成されます。
(別に不思議じゃないんだけど)


注意点。
wiki内で例示されているテンプレートが、
MovableType3.3対応のもののため、3.2以前で、これをこのままコピペするとはまります。
テンプレート例内の、
『<MTEntryIfTagged>?</MTEntryIfTagged>』
を削除することで、3.2でもきちんと動きます。


で、これ、どうやって使ったらいいのかなぁ…
発想として面白いんだけど、活用の仕方が僕には(汗)

一応、OpenSourceなんかも覗いてみたけど。
ちょっとつかめない。


教えてエロイ人。

■ 追記

OpenSearch とは オープンサーチ

つまり、あれか。
検索結果をRSS(XML)で出力するってことか。
部分的な切り出しも、言ってみれば、検索ではあるわな。確かに。

部分的なRSSの有効利用が、今の僕には思いつかなかった、というだけであって、
それはopensearch云々とはあんまり関係のない話か。
タイトルとか、テキストとかをオプションで指定できると、
なんだか凄い便利な気がするんだけど、重くなりすぎるのかな。やっぱり。


■ 追記(その2 : 10/30)


Ogawaさんの書かれていた補足エントリを読んで。
フィードURLは、GETリクエストを受け取るとフィード(=機械的に操作可能なブログのメタ情報)をレスポンスとして返す「Web API」になっています。(中略)そう考えると、ただ最新のN件のエントリーを取り出せるだけでは、Web APIとしてはあまりにもしょぼくね?と思えてくるはずです(中略)GData APIなみの機能を実現することは当面無理だとしても、全エントリーとメタ情報を取得できるようにすることは難しくありません。そういうわけで、それを実現したのがPaginatedFeedなのです。

なるほどねーopensearchを調べてるときに、
ぼんやりと思ってたことが、これでようやくはっきりしました。

つまり、何で僕が『活用法わかんね』と言ってたかといえば、
要はこのプログラムは、『前段階』であって、
Opensearchの説明にもあるとおり、これらを例えば検索エンジンで活用するためには、
・検索結果をXMLフォーマットで提供するための「OpenSearchRSS」
・サービスを特定するためのXMLファイルである「OpenSearch Description Documents」
・OpenSearchを表示するためのWebサイトやツールである「OpenSearch Aggregators」
の3つが必要であり、
要は、このプログラムで実現されるフィードを、
『OpenSearchRSS』として活用して、それを、出力できるAggregatorが必要だと。

で、優秀なAggregatorであれば、
例えば検索エンジン的な、目に見える形でのサービス実装も可能である、と。
(検索結果をRSSにしたいなら、ご紹介のヤツをと言うことか)

そういうことかな?

確かに既存のフィードは、WebAPIという視点で見れば、
利用者の出来ることが限られているという面があるわな。
とても、DBと繋がっているとは思えない、静的テキスト並みの状態。
仮に、他のAPIがそんなだったら不便きわまりないもんな。

活用方法は横に置いておいて、
まずは、フィードの意義と言う点で、意義深いと言うことが分かりました。

ふむ。