はてなダイアリーのカウンタをはてなグラフに反映する

うーん。もっとマシな方法が絶対あると思いつつ。

require 'rubygems'
require 'scrapi-util'
require 'open-uri'
require 'hatena/api/graph'

html = open('http://d.hatena.ne.jp/user/').read
counter = html.scrape('span.hatena-counter').to_s

graph = Hatena::API::Graph.new('user', '*')
graph.post('PageView', Time.now, counter)

scrapi-util.rb というのは適当につけた名前で、中身は ヽ( ・∀・)ノくまくまー(2007-01-15)にあったやつ。こんなの。

require 'scrapi'

class String
  def scrape(pattern, options = {}, &block)
    options = {:extract=>options} unless options.is_a?(Hash)
    options[:parser_options] = {:char_encoding=>'utf8'}.merge(options[:parser_options]||{})
    extract = options.delete(:extract) || block && :element || :text
    scraped = Scraper.define do
      process pattern, "matches[]"=>extract
      result :matches
    end.scrape(self, options) || []
    block ? scraped.map{|i| block.call(i)} : scraped
  end
end

Mac OS Xで自動実行させるのはcronかなんかかなあ。でもスリープしてたらどうするんだろ。ま、そのうち。