Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Radiostorm song titles

by giulienk (Curate)
on Jun 20, 2002 at 20:27 UTC ( #176145=CUFP: print w/ replies, xml ) Need Help??

As a XMMS user i can't see (yet) the titles of songs while listening to streaming radios. So i wrote a simple script to see what's on radiostorm.com anytime.
#!/usr/bin/perl use strict; use LWP::Simple;
my $urlmask = 'http://radiostorm.com/%s'; my %pls; my $config = <<EOF; News//ap24.pls 80s/80s.js/80s128.pls Classic Rock/classic.js/classic128.pls Alternative/alt.js/alt128.pls Hip-Hop/hh.js/hiphop128.pls Pop Top 40/pop.js/pop128.pls Hard Rock/hr.js/hr128.pls EOF my @radio = map {my @t = split "\/", $_; {caption => $t[0] ,js => $t[1], pls => $t[2]} } split "\n", $config; my $template = "%12s %s\n" . ' ' x 14 . "%s\n"; while (1) { for (@radio) { printf $template, $_->{caption}, getjs($_->{js}), getpls($_->{ +pls}); } print "\n" . ('- _ ' x 20) . "\n\n"; sleep 60; } sub getjs { my $js = shift; return unless $js; my ($t) = mget($js) =~ /"([^"]+)"/; return $t; } sub getpls { my $pls = shift; unless ($pls{$pls}) { my $file = mget($pls); my $num = $file =~ s/^(File\d=)/$1/gm; ($pls{$pls}) = $file =~ m!File$num=(.+)!; } return $pls{$pls}; } sub mget { return get sprintf($urlmask, shift); }

 
 UPDATE: caching using %pls now makes sense :)


 
$|=$_="1g2i1u1l2i4e2n0k",map{print"\7",chop;select$,,$,,$,,$_/7}m{..}g

Comment on Radiostorm song titles
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://176145]
Approved by FoxtrotUniform
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2014-12-20 01:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (94 votes), past polls