basyura's blog

あしたになったらほんきだす。

growlnotify で内容によって通知方法を切り替える

通知タイプを切り替えることが growlnotify コマンドではできないようなので
アプリケーションの指定自体を変えたらいいのではないかと閃いた。

修正前

cmd = "growlnotify -t '#{tweet.user.screen_name}'"
cmd << " --image #{image}" if image
cmd << " -m \"#{text}\" -n 'stream-rider'"

修正後

-n を変えればいいだけ。
ツイートの内容に自分のアカウントが含まれている場合はアプリケーションを変える。

name = tweet.text =~ /@basyura/ ? 'stream-rider-reply' : 'stream-rider'

image = image_path(tweet)
text  = tweet.text.gsub('"', '\"')
cmd = "growlnotify -t '#{tweet.user.screen_name}'"
cmd << " --image #{image}" if image
cmd << " -m \"#{text}\" -n #{name}"
`#{cmd}`