diff options
author | Casey Link <unnamedrambler@gmail.com> | 2008-06-23 14:58:00 -0400 |
---|---|---|
committer | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | 2008-06-24 00:12:47 +0200 |
commit | 0939f4e400447ba6ff3de806686804a05a51cacc (patch) | |
tree | b26705c700ffdc80ecb5596317596e635be4e399 /data | |
parent | 1bcdc4564e385eea7ca686599ae826d75aa2332a (diff) |
lastfm plugin: tries to parse the current station. will show just listened track if real time data isn't there.
Diffstat (limited to 'data')
-rw-r--r-- | data/rbot/plugins/lastfm.rb | 25 |
1 files changed, 21 insertions, 4 deletions
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*<td class="subject">\s*<a href="\/music.*?">(.*)<\/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*<td class="subject">.*<\/span><\/a>?(.*)<\/a>\s*<\/td>\s*<td class="date">\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 <username>" 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 <username>" 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 <username>" end end end |