2019年5月20日(月) 19:39 JST

RSS Aggregator改造版

  • 投稿者:
  • 表示回数 5,117
Geeklog SaYさんが作成したRSS AggregatorがGeeklog-1.4.1では動作しないというレポートがGeeklog.jpの掲示板に複数,寄せられていた。関心があったので,ハックしたものがこれ。オリジナル版との違いは,
  • Geeklog-1.4.0, 1.4.1のどちらでも動作する。
  • lib-common.phpを改造する必要はなくなった。必要な関数は皆phpblock_rssaggregator.phpに含まれている。
  • タイムスタンプは,RSS2.0で使われているRFC822フォーマットだけでなく,Atom1.0などでも使われているISO.8601.1988フォーマットにも対応。
  • フィードデータを表示するHTMLコードを指定可。
  • 記事が更新された時刻を表示可。
  • 簡単なキャッシュ機能を実装。
  • フィードデータに含まれるURLをサニタイズ。RSSインジェクションをある程度防げる。実装の際には,XSS Cheat Sheetを参考にした。

ただ,問題点もあり,設置するサイトによっては文字化けしてしまう。PHP4を使うと文字化けするようなのだが,理由はまだわからない。Geeklog.jpに設置した場合がそうなのだが,phpblock_rssaggregator.phpの254行目を


$feed = $factory->reader( $rdfurl, $_CONF['default_charset'] );
から,

$feed = $factory->reader( $rdfurl, '' );

に変えると正常に動作することから,XMLパーサ関数に関連する不具合のようだ。この問題を解決すれば,使い勝手のよいものになりそう。Geeklog.jpの左ブロックに,RSS Aggregatorのデモを表示しているので,よろしければどうぞ。

タグ:rss rss_aggregator