summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorCasey Link <unnamedrambler@gmail.com>2008-06-23 14:58:00 -0400
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2008-06-24 00:12:47 +0200
commit0939f4e400447ba6ff3de806686804a05a51cacc (patch)
treeb26705c700ffdc80ecb5596317596e635be4e399 /data
parent1bcdc4564e385eea7ca686599ae826d75aa2332a (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.rb25
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