「ニュースまるわかり」は以前「今週の大ハテナ」だったコーナーです。
RSS::save などに渡して使ってください。
=begin config example: - module: KodomoNews::hatena config: recent: 10 # optional =end require "rubygems" require "yapra/plugin" require "nokogiri" require "pp" FeedItem = Struct.new("Item", :title, :link, :date, :description) def parse_time(str) %r{(\d\d)/(\d\d)/(\d\d)} =~ str Time.parse( "20%s-%s-%s" % [$1, $2, $3] ) end def description(url) sleep 2 doc = Nokogiri::HTML(open(url)) doc.css("div#entrytxt").to_xhtml end def cell2item(cell) fi = FeedItem.new fi.title = cell.css("span.title").text url = "http://cgi2.nhk.or.jp/kdns/mwakari/" + cell.css("a").attr("href").text fi.link = url fi.date = parse_time(cell.css("span.date").text) fi.description = description(url) fi end def hatena(config, data) year = Time.now.year.to_s recent = if config && config.has_key?("recent") config["recent"].to_i else -1 end html = open("http://cgi2.nhk.or.jp/kdns/mwakari/mwakari_list.cgi?y=#{year}").read doc = Nokogiri::HTML(html) cells = doc.css('li.cell') cells[0...recent].map{|cell| cell2item(cell) } end