nsIFeedEntry から各種フィードエントリ情報を取得する

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

エントリのタイトル

フィードのタイトルと同様。

var title = entry.title.text;

エントリのパーマリンク

nsIFeedContainer の link プロパティは nsIURI 型を返す。

var parmaLink = entry.link.spec;

エントリの最終更新日

フィードの最終更新日と同様。

var lastUpdated = new Date(entry.updated);

エントリの本文

// RSS2.0の description タグで記述された内容を取得する
var summary = entry.summary;
// RSS2.0の content:encoded タグで記述された内容を取得する
var content = entry.content;
// node に対する DocumentFragment を生成する
var docFrag = (content || summary).createDocumentFragment(node);

エントリの筆者

for (var i = 0; i < entry.authors.length; i++)
{
    var author = entry.authors.queryElementAt(i, Components.interfaces.nsIFeedPerson);
    // 名前
    var authorName = author.name;
    // E-mail
    var authorMail = author.email;
    // 関連 URI(多くの場合ホームページ)
    var authorURI  = author.uri.spec;
}

エントリのカテゴリ

nsIFeedContainer の categories プロパティは使えないようだ。その代わり、以下のようにすることで成功。

var categories = entry.fields.getProperty("categories").QueryInterface(Components.interfaces.nsIArray);
for (var i = 0; i < categories.length; i++)
{
    var category = categories.queryElementAt(i, Components.interfaces.nsIPropertyBag);
    // カテゴリ名称
    var term = category.getProperty("term");
}

リファレンス:
nsIFeedPerson - MDC
Interface Reference - nsIArray

TOP

TOP