nsIFeed から各種フィード情報を取得する

Firefox 2 に搭載された Feed content access API を使って、各種フィード情報を取得する。
以下、「feed」を nsIFeed 型オブジェクトとする。

フィードのタイトル

// マークアップされている場合にタグも含んだ文字列を取得する
var feedTitle = feed.title.text;
// マークアップされている場合にタグを除いた文字列として取得する
var feedTitle = feed.title.plainText();
// マークアップされている場合に node に対する DocumentFragment として取得する
var feedTitle = feed.title.createDocumentFragment(node);

フィードのサブタイトル

title, subtitle プロパティはともに nsIFeedTextConstruct 型を返すので、マークアップされている場合の取り扱いは title 同様。

var feedSubTitle = feed.subtitle.plainText();

フィードの最終更新日

nsIFeedContainer の updated プロパティは RFC822 形式の文字列を返すので、そのまま Date オブジェクトを生成することが可能。

var feedUpdated = new Date(feed.updated);

フィードの画像

RSS2.0 の image タグで記述されたフィードの画像を取得する。

var feedImage = feed.fields.getProperty("image").QueryInterface(Components.interfaces.nsIPropertyBag2);
// 画像のURL
feedImage.getPropertyAsAString("url");
// リンク先URL
feedImage.getPropertyAsAString("link");
// タイトル
feedImage.getPropertyAsAString("title");

リファレンス:
nsIFeed – MDC
nsIFeedContainer – MDC
nsIFeedTextConstruct – MDC
Interface Reference – nsIPropertyBag2

TOP

TOP