何かで使えそうな気がして、Feed(RSSとかAtomとか)をウェブから取ってきてどうにかする、というのをNanoAでやってみた。
レンタルサーバというのを考慮して、Feedの解析はXML::FeedPPを使った。
あと、ウェブから取ってくるところは、とりあえずLWP::Simpleのmirror関数を使った。
NanoAは、テンプレートにもコードがガリガリかけるので、モジュール側に変にタグを書くよりは、変数ごと渡してしまったほうがスッキリ書ける。
今回は、解析したFeedオブジェクトをそのままテンプレートに渡して、テンプレート側で展開しているのだけど、こういうのもありだなぁ。
それにしても、Feedの解析は何を使うのが一番いいのかなぁ。
RSSやAtomに特化して調べたことはあったけど。
流行っているのかもしれないけれど、parseする時に、引数の型で動作が変わるモジュールが多い。
JPA代表理事が作ったData::Feedでもそういうのが採用されている。
Data::Feed can parse files, URIs, raw strings, and file handles. All you need to do is to pass an appropriate parameters.
こういうのは扱いやすいですよね。
今回は、FeedのcharsetがUTF-8前提なので、他のcharsetでも対応出来るように、もう少し柔軟に書いても良いかなと思います。
まあ、いずれ。

