And voila, here is a winamp version! Simply download the winamp plugin, install Winamp::Control and then here's the script. The controls are pretty easy to figure out. Press 'r' (after exiting the 'notepad' program) to grab the next song's lyrics, 'n' to load a different version of the lyrics, and 'q' to quit.
#!c:/perl/bin/perl -w
$| = 1;
use strict;
use LyricFinder;
use Winamp::Control;
my $viewer = 'notepad';
my $winamp = Winamp::Control->new(
host => '127.0.0.1',
port => 8080,
passwd => 'our_secret'
);
die "Winamp and/or the httpQ plugin do not seem to be running."
unless ( $winamp->getversion() );
my $lf = LyricFinder->new();
find_lyrics() while 1;
sub find_lyrics {
my $artist = $winamp->getid3tag_artist();
my $song = $winamp->getid3tag_songname();
my $search = $lf->search(50, $artist, $song);
print "\nFound ", $search->count(), " possible results!\n";
while ( my $page = $search->fetch() ) {
if ( $page->error() ) {
print "Fetch for ", $page->source(), " failed (", $page->e
+rror(), ")\n";
next;
}
print "Fetch from ", $page->source(), " successfull (200).\n\n
+";
sleep 2;
open( my $fh, '>', '.lyrics' ) or die "open failed: $!";
print $fh $page->lyrics();
close($fh) or die "close failed: $!";
system "$viewer .lyrics";
unlink '.lyrics';
PROMPT:
print "\n\n>> ";
chomp( my $cmd = <STDIN> );
if ($cmd =~ /^[qQ]/) {
exit(0);
}
elsif ($cmd =~ /^[rR]/) {
print "\n"; last;
}
elsif ($cmd =~ /^[nN]/) {
next;
}
else {
goto PROMPT;
}
}
print "\nNo more lyrics found for given artist and song.\n\n";
}
|