8 use POSIX qw(strftime);
9 use HTML::Entities qw(decode_entities);
10 use File::Basename qw(basename);
12 use Storable qw(freeze);
14 my $OUTDIR=q(/home/don/records/tweekin);
16 my $DATE=strftime(q(%Y_%m_%d),localtime(time));
19 tie %tw_db, 'DB_File', "$OUTDIR/tweekin.db" or die "Unable to tie file: $!";
21 system('mkdir','-p',"$OUTDIR/tweekin_$DATE") == 0 or die "Unable to mkdir: $!";
23 chdir qq($OUTDIR/tweekin_$DATE);
26 system('wget','--quiet','-c','http://www.tweekin.com/weeklysummary.htm');
28 my $summary_fh = new IO::File q(weeklysummary.htm),'r';
33 my @summary = split m#\s*</tr>\s*<tr>#s, <$summary_fh>;
35 for my $entry (@summary) {
36 next unless $entry =~ m#<a\s+href=".+\.mp3">#;
38 @entry{qw(catnum mp3 artist title label price genre country format)}
39 = map {s#</?td[^>]*>##;
40 if (m#<a\s+href="([^\"]+)">#) {
43 $_ = decode_entities($_);
47 } split m#</td>\s*<td[^>]*>#, $entry;
48 next if exists $tw_db{$entry{catnum}};
49 push @files_to_get, $entry{mp3};
50 $entry{mp3} = qq(tweekin_$DATE/).basename($entry{mp3});
51 $tw_db{$entry{catnum}} = freeze({%entry});
56 my $wget = new IO::Handle;
57 open $wget, '|-',qw(wget -i - -nH -nd);
58 print {$wget} join("\n",@files_to_get);