カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年
知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。
RSS リーダーなしでは生きられない体となってしまった今日この頃、はてなアンテナも RSS リーダーで見れるといいなと思いました。ということで、MoonWolf さんの Nora を使って、はてなアンテナのデータから RSS を生成するプログラムを作ってみました。Nora 0.0.20040216 にある typo を直して使ってますので、それが直ったバージョンがリリースされたら、体裁整えて公開します。
RSS 生成プログラムの本体は以下の通りです。Web::Robot::Hatena::Antenna が Nora の Web::Agent を使って、はてなアンテナからデータを取ってくるロボットです。出力例
#!/usr/bin/env ruby
require 'rss/1.0'
require 'rss/dublincore'
require 'uconv'
require 'web/robot/hatena/antenna'
def antenna2rss(username, password)
rss = RSS::RDF.new
rss.encoding = 'UTF-8'
rss.channel = RSS::RDF::Channel.new('http://dontstopmusic.no-ip.org/antenna/hatena.rdf')
channel = rss.channel
channel.title = Uconv.euctou8('星の下、空の上')
channel.link = 'http://a.hatena.ne.jp/nuna/'
channel.description = Uconv.euctou8('アンテナ')
channel.dc_date = Time.now
channel.items = RSS::RDF::Channel::Items.new
robot = Web::Robot::Hatena::Antenna.new(username, password)
robot.login
robot.detail.each do |record|
channel.items.Seq.li = RSS::RDF::Li.new(record.link)
item = RSS::RDF::Item.new(record.link)
item.title = Uconv.euctou8(record.title)
item.link = record.link
item.description = Uconv.euctou8(record.description)
item.dc_date = record.date
rss.item = item
end
rss
end
username = ARGV.shift
password = ARGV.shift
print antenna2rss(username, password)
よく考えたら自分のアンテナだけに限定する必要はないですね。公開アンテナからデータを取るメソッドを追加します。
ふと思い立って探したらすでにありました。うあーん。私の 3 時間を返してください。
最近のコメント:
RSS
![]()
This work is licensed under a
Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).