GJ!の新着拍手を表示するRSSを作成する。

先日導入したWeb拍手"GJ!"し、結構気に入って使ってるのですが欠点が一つ。**拍手されたかどうかはGJ!の管理者ページを見に行かないと分からない。**ということで、GJ!の新着拍手があればRSSを更新するスクリプトを作成してみました。PHPできないのでrubyで作成。
[WordPressにWeb拍手”GJ!”を導入してみた。](http://prius.cc/d/20090510_wp_gj.html “WordPressにWeb拍手”GJ!”を導入してみた。")
[ruby]
require 'rubygems’
require 'hpricot’
require 'open-uri’
require 'kconv’
# 出力するRSSファイル名決定
fname = "gj_new.rss"
f = File.open(fname, "w")
# GJ!の管理者ページ設定
url = 'http://prius.cc/gj/gj.php?mode=show&[GJ!で設定したパスワード]&new’
#
elemarr = Array.new
doc = Hpricot(open(url))
(doc/%Q[//tr]).each do |elem|
elemarr << elem
end
#
arr1 = Array.new
arr2 = Array.new
2.upto(21) do |i|
(elemarr[i]/%Q[//td]).each do |elem|
arr2 << elem.inner_text
end
arr1 << arr2
arr2 = Array.new
end
arr1.transpose
# RSS作成
# 「rss/maker」ライブラリを利用します
require 'rss/maker’
# RSSのバージョンを指定してRSSオブジェクトを生成します
rss = RSS::Maker.make("1.0") do |maker|
#適用するスタイルシートを指定します
xss = maker.xml_stylesheets.new_xml_stylesheet
xss.href = "./rdf.xsl"
# 記事を配信しているページに関する情報を設定します
maker.channel.about = "http://prius.cc/"
maker.channel.title = "GJ_RSS"
maker.channel.description = "GJ_RSS"
maker.channel.link = "http://prius.cc/"
# RSSのitemを更新日が新しい順番にソートする機能を有効にする
maker.items.do_sort = true
# 以下では記事に関する情報を指定します
arr1.each do |elem|
item = maker.items.new_item
item.title = elem[3]
item.link = "http://prius.cc/gj/"
item.dc_subject = elem[3]
item.description = elem[2] + "からのコメント:" +elem[1]
item.date = Time.parse(elem[0])
end
end
# RSSを出力します
f.puts rss
[/ruby]
作成時間は40分です。。。
参考:[Kazuhiro’s Weblog: RubyでRSSを自作してみよう](http://kazuhiro.ty.land.to/blog/2007/01/rubyrss.html)
で、これを運用するにはcronの動かせるサーバを立てなければいけない。やっぱ拍手をトリガーにしてサーバサイドでRSS作る仕組みの方が(構成的に)簡単だなぁ。GJ!の次バージョンで導入されればいいなぁ…。