From 0939f4e400447ba6ff3de806686804a05a51cacc Mon Sep 17 00:00:00 2001 From: Casey Link Date: Mon, 23 Jun 2008 14:58:00 -0400 Subject: lastfm plugin: tries to parse the current station. will show just listened track if real time data isn't there. --- data/rbot/plugins/lastfm.rb | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'data') diff --git a/data/rbot/plugins/lastfm.rb b/data/rbot/plugins/lastfm.rb index 2b58bbd4..e14eb94b 100644 --- a/data/rbot/plugins/lastfm.rb +++ b/data/rbot/plugins/lastfm.rb @@ -174,9 +174,26 @@ class LastFmPlugin < Plugin page = @bot.httputil.get("#{LASTFM}/user/#{user}", opts) if page if page.match(/class="nowListening">\s*\s*(.*)<\/a>\s*<\/td/) - m.reply "#{user} is jammin to #{$1.ircify_html}" + track = $1 + if page.match(/class="nowListening currentStation">\s*(.*?)<\/a>/m) + m.reply "#{user} is #{$1.ircify_html}" + end + m.reply "#{user} is jammin to #{track.ircify_html}" + elsif page.match(/class="justlistened first">\s*.*<\/span><\/a>?(.*)<\/a>\s*<\/td>\s*\s*just/m) + m.reply "#{user} just jammed to #{$1.ircify_html}" + else + params[:action] = "recenttracks" + params[:user] = user + lastfm(m, params) + end + else + return if params[:recurs] + if @registry.has_key? ( user ) then + params[:who] = @registry[ user ] + params[:recurs] = true + now_playing(m, params) else - m.reply "#{user} isn't listening to anything right now." + m.reply "#{user} doesn't exist at last.fm. Perhaps you need to: lastfm set " end end rescue @@ -243,7 +260,7 @@ class LastFmPlugin < Plugin user = @registry[ nick ] m.reply "#{nick} is #{user} at last.fm" else - m.reply "Sorry, I don't know who #{nick} is at last.fm" + m.reply "Sorry, I don't know who #{nick} is at last.fm perhaps you need to: lastfm set " end end @@ -265,7 +282,7 @@ class LastFmPlugin < Plugin m.reply "#{action} for #{user}:" m.reply data.to_a[0..3].map{|l| l.split(',',2)[-1].chomp}.join(", ") rescue - m.reply "could not find #{action} for #{user} (is #{user} a user?)" + m.reply "could not find #{action} for #{user} (is #{user} a user?). perhaps you need to: lastfm set " end end end -- cgit v1.2.3