Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

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 anytime.
#!/usr/bin/perl use strict; use LWP::Simple;
my $urlmask = ''; 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 :)


Comment on Radiostorm song titles
Select or Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2015-11-26 00:49 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (695 votes), past polls