Prev / Next

2009-05-28 / 前日の Outputz 結果を Twitter に POST する

- "今日" の Outputz 結果を Twitter に POST する - A More Beautiful day
  http://d.hatena.ne.jp/gtaka555/20090527/p1

がよさげだったので,パクってみました.

日が変わってから実行するように,
元ネタとは違って前日の結果を取得して Twitter に post します.

#!/usr/bin/ruby19 -Ku

require 'mechanize'
require "date"

MAGIC_WORD = '' #outputz のふっかつのじゅもん
USER = '' # Twitter のユーザ
PASS = '' # Twitter のパスワード

def twitter_update(status)
  Net::HTTP.version_1_2
  req = Net::HTTP::Post.new( '/statuses/update.xml' )
  req.basic_auth(USER, PASS)
  q  = "status=#{URI.encode(status)}"
  Net::HTTP.start( 'twitter.com' ) do |http|
    response = http.request(req, q)
  end
end

def get_outputz(date)
  agent = WWW::Mechanize.new

  configpage = agent.get('http://outputz.com/config/')
  form = configpage.forms.first
  form['magic_word'] = MAGIC_WORD
  agent.submit(form)

  d = date.strftime("%Y%m%d")
  page = agent.get("http://outputz.com/daily/#{d}")

  doc = Nokogiri::HTML(page.body)
  byte = doc.xpath("id('contentBox')/div[1]/p").to_s.scan(/[\d,]+/)[0]
  ranking, ranking_info = doc.xpath("id('contentBox')/p[1]").to_s.scan(/\d+/)

  return "#{date} の outputz: #{byte}文字.順位 #{ranking} 位(上位 #{ranking_info}%)"
end

yesterday = Date.today - 1

twitter_update(get_outputz(yesterday))


関連
- outputz.el を使ってみる [2008-11-23-1]
- outputz はじめてみました [2008-11-21-2]

comments powered by Disqus