RubyでiTunes再生中の曲をTwitterにつぶやく

とちぎRuby会議01から toRuby勉強会に参加をはじめたが
月一回の勉強会のみでは、全然Rubyを覚える気配がないので
「たのしいRuby 第2版」を買って来て、今月頭ぐらいから
ちょっとまじめに勉強を初めてみた。


2週間ぐらいで読み終えて、初めてのRubyプログラムがこれ。
TwitterクライアントにEchofonを使ってるけど、iTunesで再生
している曲をつぶやく機能がなかったので勉強も兼ねて作ってみた。

# -*- coding: utf-8 -*-
#
# nowplaying.rb
#
# iTunes再生中の曲をTwitterでつぶやく (Mac用)
#
require 'net/http'

User = ""  # ユーザ名
Pass = ""  # パスワード

Url = "http://twitter.com/statuses/update.xml"
Param = "status="

# AppleScriptで曲名、アーティスト名を取得
track = `osascript -e 'tell application "iTunes"' -e 'set trackName to name of current track' -e 'set trackArtist to artist of current track' -e 'return trackName & " / " & trackArtist' -e 'end tell'`

exit if track == ""

# Twitterに、つぶやく
uri = URI.parse(Url)
req = Net::HTTP::Post.new(uri.path)
req.basic_auth(User, Pass)
req.body = Param + "Now playing: " + track

res = Net::HTTP.start(uri.host) { |http|
  http.request(req)
}

if res.class == Net::HTTPOK
  puts track
else
  puts "#{res.code}: #{res.message}"
end


User, Pass に自分のアカウント書いて実行すると、iTunes再生中の
曲名とアーティスト名をつぶやきます。

$ ruby nowplaying.rb
Space Cowboy / Jamiroquai