RSSをHTMLに変換

指定されたRSSのitemのtitleをcheckbox付きのHTLで出力する。
HTMLが整形されてないのが気になるけど、
とりあえずこれはこれでほぼ完成。
連携するCGIの方は、まだ何もできていないので完成したとは言えない。

require 'rss'
require 'kconv'

def print_items(rss)
  html = ""

  html << %Q(<form method="GET" action="hoge.cgi">\n)
  item_num = 0
  rss.items.each{|item|
    html << %Q(<input type="checkbox" name="item" value="#{item_num += 1}">)
    html << %Q(#{item.title}<br />\n)
  }
  html << %Q(<input type="submit"><br />\n)
  html << %Q(</form>\n)

  html

  ## 標準出力用
  #  rss.items.each{|item|
  #    puts "#{item.title}: #{item.description}".tosjis
  #  }
end

def output_file(filename, rss)
  html = ""

  html << "<html><body>\n"
  html << "<ul>\n"
  html << print_items(rss)
  html << "</ul>\n"
  html << "</body></html>"
  
  html = html.tosjis

  open(filename, 'w'){|f|
    f.print(html)
  }

  print html
end

rss_src = ARGV[0] || 'http://b.hatena.ne.jp/hotentry?mode=rss'
# 第二引数にtrueを与えると、バリデーション付きでパースする。
rss = RSS::Parser.parse(rss_src, true)
filename = __FILE__.sub(/\.rb$/, '.html')

print_items(rss)

output_file(filename, rss)


Sign up | Tumblrを使って何かしようとしてるのは内緒。
読み方はたんぶらー?たんぶるる?
僕はたんぶらーと読みたい。
screenshot