diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-10-12 23:39:29 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-10-12 23:39:29 +0200 |
commit | 1b0abee054235ea4ac7589dd92d3939e1386d24a (patch) | |
tree | 91d2aa7d5a810bb0032dfe1585ad8e0023c5f81e /emms/lyricwiki.rb | |
download | elibs-1b0abee054235ea4ac7589dd92d3939e1386d24a.tar.gz elibs-1b0abee054235ea4ac7589dd92d3939e1386d24a.tar.bz2 |
Initial contents
Diffstat (limited to 'emms/lyricwiki.rb')
-rwxr-xr-x | emms/lyricwiki.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/emms/lyricwiki.rb b/emms/lyricwiki.rb new file mode 100755 index 0000000..db7b970 --- /dev/null +++ b/emms/lyricwiki.rb @@ -0,0 +1,51 @@ +#!/usr/bin/env ruby +# +# (c) 2004-2008 The Music Player Daemon Project +# http://www.musicpd.org/ +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# +# Load lyrics from lyrics.wikia.com, formerly lyricwiki.org +# + +require 'uri' +require 'net/http' +require 'cgi' + +url = "http://lyrics.wikia.com/api.php?action=lyrics&fmt=xml&func=getSong" + \ + "&artist=#{URI.escape(ARGV[0])}&song=#{URI.escape(ARGV[1])}" +response = Net::HTTP.get(URI.parse(url)) + +if not response =~ /<url>\s*(.*?)\s*<\/url>/im + $stderr.puts "No URL in response!" + exit(1) +end + +url = $1 +exit(69) if url =~ /action=edit$/ + +response = Net::HTTP.get(URI.parse(url)) +if not response =~ /<div class='lyricbox'>\s*(.*?)\s*<!--/im + $stderr.puts "No <div class='lyricbox'> in lyrics page!\n" + exit(1) +end + +if not $1 =~ /^.*<\/div>(.*?)$/im + $stderr.puts "Couldn't remove leading XML tags in lyricbox!\n" + exit(1) +end + +puts CGI::unescapeHTML($1.gsub(/<br \/>/, "\n")) |