#!/opt/perl/bin/perl -w # # Download today's torrent of the Howard Stern show # use strict; use Getopt::Std; use POSIX qw/:locale_h :time_h/; use LWP::Simple; my $CMD = "getstern"; my $TRACKER = "http://67.81.80.136:6968"; sub usage { die "usage: $CMD [-y year] [-m month] [-d day]\n"; } setlocale(LC_ALL, "C"); my @time = localtime; my ($tm, $td, $ty) = split(/\//, strftime("%D", @time)); my %opts; getopts("y:m:d:", \%opts) or usage; defined $opts{"y"} and $ty = $opts{"y"}; defined $opts{"m"} and $tm = $opts{"m"}; defined $opts{"d"} and $td = $opts{"d"}; my ($sm, $sd, $sy) = split(/:/, sprintf("%02d:%02d:%02d", $tm, $td, $ty)); my $ly; if (length($sy) == 2) { $ly = "20" . $sy; } else { $ly = $sy; $sy = substr($sy, 2, 2); } $time[4] = $sm - 1; my $lm = strftime "%B", @time; my ($rm, $rd, $ry) = split(/:/, sprintf("%d:%d:%d", $sm, $sd, $sy)); my $doc = get $TRACKER or die "Couldn't retrieve document from HTTP server\n"; my $url = ($doc =~ /^.*Music.*[Hh]oward [Ss]tern.*($rm|$sm|$lm)[- ]($rd|$sd)[-, ] *($ry|$sy|$ly).*(\/torrent.html\?info_hash=[a-f0-9]+).*$/mo)[3] or die "$CMD: No torrent matching the date\n"; exec("btdl \"$TRACKER$url\""); .