2008年05月13日

[Ruby] プロ野球の試合結果を取得して、Officeのイルカにしゃべらせてみた!

まず、NPB(日本プロ野球機構)のサイトから試合情報を取得するスクリプト.

require 'rubygems'
require 'hpricot'
require 'open-uri'

class NPB

NPB_URL = "http://bis.npb.or.jp/2008/games/"

def games(proxy=nil)
return parse(get(proxy))
end

private
def get(proxy=nil)
return Hpricot( open(NPB_URL, :proxy => proxy ).read )
end

def parse(doc)
# チーム名を取得
teams = []
(doc/"td.contentsTeam").each do |e|
teams << e.inner_text.slice(0, 8)
end
# 得点を取得
runs = []
(doc/"td.contentsRuns").each do |e|
runs << e.inner_text
end

# ごにょごにょ
matches = []
while teams.size != 0 && runs.size != 0
matches << teams.slice!(0,2).zip(runs.slice!(0,2)).inject({}){|h, k| h[k[0]] = k[1]; h}
end
return matches
end

end


[{"阪神"=>100, "読売"=>0}, {....}, {....}, {....}, ....]みたいな感じでハッシュの要素を持つ配列の形で試合情報を取得することができる。
途中、かなり無理矢理な感じですが・・・。
(あとで直そう・・・)


次に、イルカを呼ぶほうのコード。
「Growlで通知するといいよ!」とかいうのをブログで見ると悔しくなるので、今回はイルカにしゃべらせます。

イルカの呼び方は, artonさんのブログ記事(イルカと遊ぼう)を参考にしました。

require 'win32ole'
require 'npb'

KYLE = "C:\\Program Files\\Microsoft Office\\OFFICE11\\DOLPHIN.ACS"

games = NPB.new.games

agent = WIN32OLE.new("Agent.Control")
agent.connected = true
r = agent.Characters.load("dol", KYLE)

while r.status != 0 && r.status != 1
puts 'loading...'
end
dol = agent.Characters.Character("dol")
dol.Activate(2);

dol.show();
games.each do |g|
g.keys.each do |i|
dol.speak(i + ": " + g[i])
end
dol.speak("=============")
dol.play("IDLE(1)")
end
dol.hide();

sleep(15)


両方のスクリプトを同じディレクトリにおいて, 後者のスクリプトを実行すると, こんな感じでイルカが左上に出てくる.

dolphin.bmp


以上!!

思いつきでがーっと書いたので、めちゃくちゃです・・・。
あとでちゃんと直そっと・・・。

もっとシンプルに記述できるよ!って方は、ぜひぜひよろしくお願いします。

追記(2008/05/20)
github使ってみました。
http://github.com/yutsuda/ruby-npb/tree/master
posted by yu at 01:56 | Comment(6) | TrackBack(0) | Ruby
この記事へのコメント
家出娘や一人で寂しい子が書き込むSOS娘BBSでは彼女たちと遊んであげたり泊めてあげれる、優しい人を募集しています。見返りにHをしてくれる子も多く、いろんな理由がある少女があなたの助けを待っています。
Posted by SOS娘 at 2009年07月12日 12:20

うははははっ!!wwwすんげーパ イ オ ツな女の子とちゅっちゅしてきたよ〜!!www
突くたびにブルルンブルルン揺れるのはオ パ ー イ好きにはたまらんwwwww(*´∀`*)
しかもたゆんたゆんのオ パ ー イでズリズリもしてもらったし、キンモヂィィー!!www(ノ*゚∀゚)ノ

http://adc.1g8sr4.com/rts1b77/
Posted by ボッヨヨヨヨ〜〜ン!!www at 2009年08月10日 02:00

ホホホイ!ホホホーイ!って調子乗って八 メ ま く っ て たら通帳見て引いたし!!!!
まぁ欲しいモン買いまくってパチスロで遊んでてもすぐに貯まっちゃうからなーwwwww
セ レ ヴってホント金使い荒いと思うわwwwなんで俺みたいなのに10 マ ソとかくれんのwww

つかマジで金の使い道に困ってるんだよねwww誰かおせーてwwwヽ(´Д`;)ノ
http://envi.strowcrue.net/2kk2rn1/
Posted by ヒャッフゥーーー!!!! at 2009年08月15日 02:11

夏も終わりだから寂しいコが多いのかなー?めっちゃメールくるんだけどwww

・・・で、昨日気づいたんだが8月で八メた人数が合計30人を越えてたよ!!Σ( ̄△ ̄;)
1日1人ペースどころじゃねぇなwwwつーかやりすぎだろ俺wwwww
いや〜ちょっとコレ31日までに100マンいくんじゃねぇの!?www(σ゚∀゚)σワクワク

http://Tmo.Ometroro.com/ux33hg-/
Posted by チョット稼ぎ杉かもなーwww at 2009年08月21日 01:56

『おちんちん見たいなーヽ(*´Д`*)ノ』って言うノリノリなギャルと会ってきたよー!!
経験豊富なんだろー?と思ってたら実はヴァージンだったのでテンション激アガリ!!(゚Д゚≡゚Д゚)

慣れない手つきのフ-ェ-ラや手-コ-キだったけど・・・だが、それがいい!!www(`・ω・´)b ビシッ!!
その後は美味しく初モノと報酬をいただきましたwww一石二鳥でうまいねコリャwwwww

http://cune.protobem.com/owfrjwz/
Posted by 一度で二度ウマイ!www at 2009年08月28日 19:28

むははwwwはじめての女のま-〇-こにテンション上がっちったwww
ぷにぷにしまくって栗ちゃんペロペロしてたらすぐにピュピュッって潮吹いてたよwww

おかげで俺みたいなド-テ-チムポでもすぐにイかせられたしな♪www(ノ゚∀゚)ノ

http://COOl.Au-aU-a.nEt/upt7s5z/
Posted by おっひょひょひょ! at 2009年09月06日 07:48
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。