休みなので,何かを作っています。

その中間生産物として,以下のようなスクリプトを作りました。

1
./o_summary.rb

ってやると,2010年3月(とりあえず決め打ち)のO-GROUPのライブ予定をまとめて表示してくれます。

udzura@ubuntu-vaio:~/dev$ ./o_watch_test.rb
@@@O-East@@@
●2010年3月01日 @ O-East
□テリアの東 「空のエチュード II」
Dichten
ソノダバンド/WADAIKO龍鼓会/COKEBOTTLE
#dicline/LIVING IN THE DARK
ゲスト:C’est La Vie
開場17:30/開演18:00●前売3000/当日3500●ドリンク別
問合せ:03-5458-4681 O-EAST
Dichten
=> http://shibuya-o.com/category/east/?id=schedule&Year=2010&Month=3#post-9701

----
●2010年3月02日 @ O-East
□PUNK ROCK CONFIDENTIAL JAPAN presents PUNKAFOOLIC! KOTTONMOUTH KINGS JAPAN TOUR
KOTTONMOUTH KINGS
開場19:00/開演20:00●前売5000/当日未定●ドリンク別
発売中●ぴあ(344-442)・ローソン(70471)・e+
※未就学児童入場不可
問合せ:03-3475-9999 H.I.P

http://www.punkafoolic.com/

=> http://shibuya-o.com/category/east/?id=schedule&Year=2010&Month=3#post-8977

----
●2010年3月03日 @ O-East
□美神降臨〜LIV MOON FIRST CLUB SHOW
LIV MOON
開場18:00/開演19:00●前売5500/当日未定●ドリンク別
発売中●ぴあ(345-509)・ローソン(74305)・e+・CN
問合せ:03-3462-6969 クリエイティブマン

=> http://shibuya-o.com/category/east/?id=schedule&Year=2010&Month=3#post-9126

----
●2010年3月04日 @ O-East
□たむらぱん パンタスティックツアー
たむらぱん
開場19:00/開演19:30●前売4500/当日5000●ドリンク別
発売中●ぴあ(342-160)・ローソン(78625)・e+・CN
問合せ:03-3498-9999キョードー東京

=> http://shibuya-o.com/category/east/?id=schedule&Year=2010&Month=3#post-8702

----
●2010年3月05日 @ O-East
□おわらないせかいのうたいかた
……


Hpricot ライブラリを使用。

(本当はAPIのデザイン的にnokogiriを使いたかったのだが,文字化けする。。。 多分,ヘッダのmeta情報だけなぜかS_JISだからだと思うんだけど,困った)

o_summary.rb

#!/usr/bin/ruby
# o-group データ自動取得
 
require 'rubygems'
require 'hpricot'
require 'open-uri'
 
$KCODE = 'u'
 
houses = ["East", "West", "Nest", "Crest"]
 
y = 2010
m = 3
 
houses.each do |house|
  puts "@@@O-#{house}@@@"
  url = "http://shibuya-o.com/category/#{house.downcase}/?id=schedule&Year=#{y}&Month=#{m}"
  doc = Hpricot(open(url))
  date = (doc/".scheduledate")
  date.each do |elm|
    d = elm.inner_text.split[0].match(/#{"%02d" % m}\/(\d\d)/)[1]
    title = (elm/"../../../td/span[@class='scheduletitle']").inner_text.strip
    desc = (elm/"../../../td/p")[1..4].map{|v| v.inner_text.strip}.join("\n")
    post_id = (elm/"../../../td/span[@class='scheduletitle']")[0]["id"]
    permlink = "#{url}##{post_id}"
    print <<-"EOD"#{y}年#{m}月#{d}日 @ O-#{house}#{title}
#{desc}
=> #{permlink}
 
----
    EOD
  end
end
 
exit 0

書いてみて思ったんだけど,本当に短いコードでやりたいことができた。ビックリだわ。
このコードを元にフヒヒするよてい。