#!/usr/bin/perl # Philip Shuman philip at shuman dot org http://www.shuman.org # cdList.pl v0.2.1 $address_file = "cd_list"; &writeHeader; &readEnv; &readLines; &writeInfo; &writeFooter; sub writeInfo { print "

\n"; if ($FORM{'sortby'} eq "album") { print " "; print ""; print ""; print " \n"; print " \n"; print " \n"; print " \n"; %dbk = reverse %ALBUM_UNIQUE; my $i = 0; foreach $lkey (sort { lc($a) cmp lc($b) } keys %dbk) { print " \n"; $i++; print ""; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; } } elsif ($FORM{'sortby'} eq "id") { print " "; print ""; print ""; print " \n"; print " \n"; print " \n"; print " \n"; %dbk = reverse %ID_UNIQUE; my $i = 0; foreach $lkey (sort { lc($a) cmp lc($b) } keys %dbk) { print " \n"; $i++; print ""; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; } } elsif ($FORM{'sortby'} eq "genre") { print " "; print ""; print ""; print " \n"; print " \n"; print " \n"; print " \n"; %dbk = reverse %GENRE_UNIQUE; my $i = 0; foreach $lkey (sort { lc($a) cmp lc($b) } keys %dbk) { print " \n"; $i++; print ""; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; } } else { print " "; print " \n"; print " \n"; print " \n"; print " \n"; %dbk = reverse %ARTIST_UNIQUE; my $i = 0; foreach $lkey (sort { lc($a) cmp lc($b) } keys %dbk) { print " \n"; $i++; print ""; print " \n"; print " \n"; print " \n"; print " \n"; print "\n"; } } print "
"; print " Sort by: ArtistAlbumCDDB GenreCDDB ID
$i$ARTIST{$dbk{$lkey}}$ALBUM{$dbk{$lkey}}$GENRE{$dbk{$lkey}}"; print "$ID{$dbk{$lkey}}
"; print " Sort by: ArtistAlbumCDDB GenreCDDB ID
$i$ARTIST{$dbk{$lkey}}$ALBUM{$dbk{$lkey}}$GENRE{$dbk{$lkey}}"; print "$ID{$dbk{$lkey}}
"; print " Sort by: ArtistAlbumCDDB GenreCDDB ID
$i$ARTIST{$dbk{$lkey}}$ALBUM{$dbk{$lkey}}$GENRE{$dbk{$lkey}}"; print "$ID{$dbk{$lkey}}
"; print " Sort by: ArtistAlbumCDDB GenreCDDB ID
$i$ARTIST{$dbk{$lkey}}$ALBUM{$dbk{$lkey}}$GENRE{$dbk{$lkey}}"; print "$ID{$dbk{$lkey}}
"; } sub writeHeader { print ("Content-type: text/html\n\n"); print "Our Compact Discs \n"; } sub writeFooter { print "\n"; } sub readEnv { @pairs = split(/&/, $ENV{'QUERY_STRING'}); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $FORM{$name} = $value; } } sub readLines { open (FILE,"$address_file") || die "oops, can't open $id_file"; $lineNum = 0; while () { $lineNum++; ($id, $artistName, $albumName, $genre) = split(/\|/); chomp $albumName; chomp $genre; $ID{$lineNum} = $id; $ID_UNIQUE{$lineNum} = $id . $lineNum; $ARTIST{$lineNum} = $artistName; $ARTIST_UNIQUE{$lineNum} = $artistName . $lineNum; $ALBUM{$lineNum} = $albumName; $ALBUM_UNIQUE{$lineNum} = $albumName . $lineNum; $GENRE{$lineNum} = $genre; $GENRE_UNIQUE{$lineNum} = $genre . $lineNum; } close(FILE); }