先日、「Google AJAX Feed APIを使って外部のRSSを読み最近の記事リストを表示するJavascript」を使用してアメーバブログのRSSを読み込み、新着5件の一覧表示を行いましたが、アメーバブログ(アメブロ)のRSSは広告(PR:○○~)というのが自動的に入り、これがすごく邪魔で困っていました。
そこで今回はif文を加えて「PR:」から始まるフィードは無視(省く)することにしました。
スクリプト
<script src="http://www.google.com/jsapi?key=●●あなたのAPIキー●●" type="text/javascript"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { //RSSフィードの取得 var feed = new google.feeds.Feed("●●読み込みたいフィードのURL"); //取得するフィード数 feed.setNumEntries(5) //実際に読む込む feed.load(function(result) { //読み込めたか判別 if (!result.error) { //表示部分を選択 var container = document.getElementById("feed"); //変数の初期化 var list = ""; //Feedの処理 for (var i = 0; i < result.feed.entries.length; i++) { //Feedを一つ抽出 var entry = result.feed.entries[i]; if(entry.title.match(/^PR:/)) { //「PR:」から始まるものがあれば何もしない } else{ var div = document.createElement("li"); var a = document.createElement("a"); var strdate = createDateString(entry.publishedDate); a.href = entry.link; var list = entry.title + " (" + strdate + ")" ; a.appendChild(document.createTextNode(list)); div.appendChild(a); container.appendChild(div); } } } }); } //日付の表示方法を変更 function createDateString(publishedDate){ var pdate = new Date(publishedDate); var pday = pdate.getDate(); var pmonth = pdate.getMonth() + 1; var pyear = pdate.getFullYear(); var phour = pdate.getHours(); var pminute = pdate.getMinutes(); var psecond = pdate.getSeconds(); //var strdate = pyear + "年" + pmonth + "月" + pday + "日" + phour + "時" + pminute + "分" + psecond + "秒"; var strdate = pyear + "-" + pmonth + "-" + pday ; return strdate; } google.setOnLoadCallback(initialize); </script> <!--表示結果表示する部分--> <div id="feed"></div> <!--表示結果表示する部分-->
ということで、厚切りジェイソンのブログのフィードを読み込んで「PR:」を除いた新着情報を表示してみた。
↓↓実行結果↓↓
ただし、RSSに「PR:」が含まれていなければ新着5件を表示しますが、
新着5件中1件に「PR:」が含まれていた場合、フィード自体から削除して消すのではなく、省略というか、スキップしているだけなので、表示が4件になってしまいます。
それを補うスクリプトは今度チャレンジします。
2009/09/23追記
上記を更に改造↓
Google AJAX Feed APIで最新の記事一覧を表示する。
http://qwerty.work/2009/09/google-ajax-feed-api-1.php