昨日書いたやつ、バグってた。
フィルターすると場合によっては同じ記事が重複するという不具合があったので直した。
まあ一応あげておく。
#!/usr/local/bin/ruby require 'open-uri' require 'jsonparser' require 'erb' def get_json_items(uri) src = open(uri).read parser = JsonParser.new json = parser.parse(src) items = [] json['value']['items'].each do |i| item = {} item[:title] = i['title'] item[:pubdate] = i['pubDate'] item[:date] = i['dc:date'] item[:yosan] = i['yosan'] item[:description] = i['description'] item[:finish] = i['dc:finish'] item[:pref] = i['dc:pref'] item[:link] = i['link'] items.push(item) end items end def filter_items(items) filtered = [] items.each do |i| (filtered.push(i);next) if i[:pref].match('東京都') #この3行を (filtered.push(i);next) if i[:pref].match('福岡県') #変更 (filtered.push(i);next) unless i[:yosan].match('以下') #しました。 end filtered end def format_items(items) tmpl =%q{ <% items.each do |i| %> <a href="<%= i[:link] %>"><%= i[:title]%></a><br /> <%= i[:pref] %> <%= i[:yosan] %><br /> 締め切り:<%= i[:finish] %><br /> <%= i[:description] %><br /> 投稿:<%= i[:pubdate] %><br /><br /> <% end %> } erb = ERB.new(tmpl) html = erb.result(binding) end uri = 'http://pipes.yahoo.com/pipes/pipe.run?_id=5e72e20448cb9daf5693cf0c61034b7a&_render=json' items = get_json_items(uri) exit if items.length == 0 items = filter_items(items) html = format_items(items) puts html