From 4fa049e0386d8044f0063e90b7e7efbca9c712de Mon Sep 17 00:00:00 2001 From: Raine Virta Date: Sun, 13 Dec 2009 22:31:14 +0200 Subject: add spotify plugin --- data/rbot/plugins/spotify.rb | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 data/rbot/plugins/spotify.rb (limited to 'data/rbot/plugins') diff --git a/data/rbot/plugins/spotify.rb b/data/rbot/plugins/spotify.rb new file mode 100644 index 00000000..f645a8af --- /dev/null +++ b/data/rbot/plugins/spotify.rb @@ -0,0 +1,66 @@ +#-- vim:sw=2:et +#++ +# +# :title: spotify plugin for rbot +# +# Author:: Raine Virta +# +# Copyright:: (C) 2009 Raine Virta +# +# License:: GPL v2 + +class SpotifyPlugin < Plugin + def help(plugin, topic) + _("spotify plugin - usage: spotify , spotify artist , spotify album ") + end + + def search(m, params) + method = params[:method] || 'track' + result = Spotify.search(method, params[:query].to_s) + + if result.nil? + m.reply "no results" + return + end + + case method + when 'track' + reply = _("%{b}%{artist}%{b} – %{track}") % { + :artist => result.artist.name, + :track => result.name, + :b => Bold + } + + if result.album.released + reply << _(" [%{u}%{album}%{u}, %{released}]") % { + :released => result.album.released, + :album => result.album.name, + :u => Underline + } + else + reply << _(" [%{u}%{album}%{u}]") % { :album => result.album.name, :u => Underline } + end + + reply << _(" — %{url}") % { :url => result.url } + when 'artist' + reply = _("%{b}%{artist}%{b} — %{url}") % { + :b => Bold, + :artist => result.name, + :url => result.url + } + when 'album' + reply = _("%{b}%{artist}%{b} – %{u}%{album}%{u} — %{url}") % { + :b => Bold, + :u => Underline, + :artist => result.artist.name, + :album => result.name, + :url => result.url + } + end + + m.reply reply + end +end + +plugin = SpotifyPlugin.new +plugin.map 'spotify [:method] *query', :action => :search, :requirements => { :method => /track|artist|album/ } -- cgit v1.2.3