X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=data%2Frbot%2Fplugins%2Flastfm.rb;h=c288324833cd1d8318803981d8c2078222dc8a47;hb=10ae83bef9c81cef32639b07d2a30f9ebfdc6440;hp=dca347036f493a15b40b3255797d546ae5e9bd05;hpb=be6d4c5c331bec69d442368bfb91e31a9fa9cdb5;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/data/rbot/plugins/lastfm.rb b/data/rbot/plugins/lastfm.rb index dca34703..c2883248 100644 --- a/data/rbot/plugins/lastfm.rb +++ b/data/rbot/plugins/lastfm.rb @@ -416,6 +416,44 @@ class LastFmPlugin < Plugin end end + def find_venue(m, params) + venue = params[:venue].to_s + venues = search_venue_by(:name => venue, :limit => 1) + venue = venues.last + + if venues.empty? + m.reply "sorry, can't find such venue" + return + end + + reply = _("%{b}%{name}%{b}, %{street}, %{u}%{city}%{u}, %{country}, see %{url} for more info") % { + :u => Underline, :b => Bold, :name => venue.name, :city => venue.city, :street => venue.street, + :country => venue.country, :url => venue.url + } + + if venue.street && venue.city + maps_uri = "http://maps.google.com/maps?q=#{venue.street},+#{venue.city}" + maps_uri << ",+#{venue.postal}" if venue.postal + elsif venue.lat && venue.long + maps_uri = "http://maps.google.com/maps?q=#{venue.lat},+#{venue.long}" + else + m.reply reply + return + end + + maps_uri << "+(#{venue.name.gsub(" ", "%A0")})" + + begin + require "shorturl" + maps_uri = ShortURL.shorten(CGI.escape(maps_uri)) + rescue LoadError => e + error e + end + + reply << _(" and %{maps} for maps") % { :maps => maps_uri, :b => Bold } + m.reply reply + end + def get_album(artist, album) xml = @bot.httputil.get("#{APIURL}method=album.getinfo&artist=#{CGI.escape artist}&album=#{CGI.escape album}") unless xml @@ -677,6 +715,7 @@ plugin.map 'lastfm [:num] event[s] [for] *who', :action => :find_events, :requir plugin.map 'lastfm artist *artist', :action => :find_artist, :thread => true plugin.map 'lastfm album *album [by *artist]', :action => :find_album plugin.map 'lastfm track *track', :action => :find_track, :thread => true +plugin.map 'lastfm venue *venue', :action => :find_venue, :thread => true plugin.map 'lastfm set user[name] :who', :action => :set_user, :thread => true plugin.map 'lastfm set verb *present, *past', :action => :set_verb, :thread => true plugin.map 'lastfm who [:who]', :action => :get_user, :thread => true