welcome: please sign in
location: shoutcast.pl

Nicht schoen aber praktisch, gray ruft zum verbessern auf!

use strict;

my $SEARCH=$ARGV[0];
unless($SEARCH) { print "usage:\n\tshoudcast.pl <wasdenn?>\n"; exit;}
my $SHOUTCAST='http://www.shoutcast.com';
my $BROWSER='lynx -source -accept_all_cookies';
my $PLAYER='mpg123';
my $DUMP=`$BROWSER "$SHOUTCAST/directory/?s=$SEARCH" | grep  \.pls`;

my (%TITLES);
my $CNT=0;

for(split /\n/, $DUMP)
{
 chomp;
 s/.*href=\"(.*pls)\".*/$1/i;
 getpls($_, \%TITLES);
}

foreach(keys(%TITLES))
{
 print"($CNT)$TITLES{$_}\n$_\n";
 $CNT++;
}
if($CNT eq 0) { print"\nnothing found\n"; exit; }

print"\nsag an was ich spielen soll!\n";
my $SELECT;
chomp($SELECT=<STDIN>);
$CNT=0;
foreach(keys(%TITLES))
{
 if($SELECT eq $CNT)
 {
  system("$PLAYER", "$_");
 }
 $CNT++;
}

sub getpls
{
 my ($URL, $REF)=@_;
 my $U;
 my $PLSDUMP=`$BROWSER $SHOUTCAST$URL`;
 for(split /\n/, $PLSDUMP)
 {
  if(s/File\d+\=(.*)/$1/)
  {
    $U=$_;
  }
  if(s/Title\d+\=(.*)/$1/)
  {
   s/\(.*\d+\)//;
    $REF->{$U}=$_;
  }
 }
}

shoutcast.pl (last edited 2008-07-14 09:55:43 by localhost)