#!/usr/bin/env ruby require 'rubygems' require 'ruby-growl' require 'hpricot' require 'cgi' require 'open-uri' raise "#{$0} " if ARGV.empty? user = ARGV[0] already_notified = [] while true do now_listening = Hpricot(open("http://www.last.fm/user/#{user}"))/".nowListening td.subject" unless now_listening.empty? currently_played = now_listening.last.inner_text.strip unless already_notified.include?(currently_played) already_notified << currently_played g = Growl.new("localhost", "ruby-growl", ["ruby-growl Notification"]) g.notify("ruby-growl Notification", "#{user} is listening to", CGI::unescapeHTML(currently_played)) end end sleep 60 end