2008年8月4日月曜日

 

【API】【Javascrip】Google AJAX Feed APIで複数RSS

Google AJAX Feed APIを使ってみたよ。

Google AJAX Feed APIでRSSを読み込む - MotuLog

リンク先のコードを参考。
今回使ったgoogle.feeds.Feed以外にgoogle.feeds.FeedControlというクラスがあって複数のURLをaddFeed(url, label)というメソッドで渡せる(labelは表示用のタイトル)。
これは取得したRSSを、タブ型とかいくつかのデザインに成形して表示してくれたりする。
サイト関係なく日付順で表示したかったので使わなかった。


<script type="text/javascript"> 
var url=[
            "http://~RSS その1~",
            "http://~RSS その2~"
           ];
var num=10;
var array=[];
var j=0;
google.load("feeds", "1");
function initRSSFeed() {
    var feed = new google.feeds.Feed(url[0]);

    feed.setNumEntries(num);
    feed.load(onComplete); 
}

function cmp(a,b){return b.publishedDate - a.publishedDate; }

function onComplete(result){
    if (!result.error) {
        for (var i = 0; i < result.feed.entries.length; i++) {
            array.push(result.feed.entries[i]);
        }
    }
    if (url.length > j ) {
    var feed = new google.feeds.Feed(url[j++]);
    feed.load(onComplete);
    } else {
    onComplete2();
    }
}

function onComplete2(){
        var container = document.getElementById("rss");
        var temp = '';
        array.sort(cmp);
        for (var i = 0; i < array.length; i++) {
            var entry = array[i];
            temp += '<dt>'+'<a href="' + entry.link + '">'+entry.title+'</a></dt>\n';
            temp += '<dd class="feedTitle">\n';
            temp += entry.contents+'<br />\n';
            temp += changeDate(entry.publishedDate)+'\n';
            temp += '</dd>\n';
        }
        container.innerHTML = temp;
}

//日付表記を変換
function changeDate(str){
    var myDate=new Date(str);
    var YYYY=myDate.getFullYear();
    var MM=myDate.getMonth()+1;
    if(MM<10){MM="0"+MM;}
    var DD=myDate.getDate();
    if(DD<10){DD="0"+DD;}
    var date=YYYY+"/"+MM+"/"+DD;
    return date;
}
google.setOnLoadCallback(initRSSFeed);

</script>

もっとまともなのがあったら教えて欲しい。ダメなところも教えて欲しい。直すから。彼方の好みのコードになるから。
各エントリのデータ(feed.entries)をまとめてるので、それ以外のフィード情報を捨ててるのが問題。
feed.titleは必要な気がするので、onComplete()内でentry.feedtitleみたいに追加するやり方を誰か教えてください。

関連記事

2008年8月1日

ラベル: ,


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google