#! /usr/local/bin/perl
# Make Zappa World
# This program reads CD data files and creates a web page for each CD that there is data for ;
# and each song listed on a CD. If the song file already exists, it just adds a line to the ;
# song .dat file indicating that it is on the CD that is being processed. And other stuff :) ;
$cd_data_filelocation = "/home/tomg/zappa/cd/data/";
$cd_html_filelocation = "/home/tomg/zappa/cd/html/";
$song_data_filelocation = "/home/tomg/zappa/so/data/";
$song_html_filelocation = "/home/tomg/zappa/so/html/";
$lyrics_filelocation = "/home/tomg/zappa/lyrics/" ;
$log_filelocation = "/home/tomg/zappa/logs" ;
$webref = "http://www.therealtomgreen.com";
$zappawebref = "http://www.therealtomgreen.com/zappa";
$cd_count = "0";
$whitespace = "http://www.therealtomgreen.com/images/whitespace.gif";
open (LOG, ">/home/tomg/zappa/logs/makeworld.log");
while ($datafile = </home/tomg/zappa/cd/data/*.dat>) {
open (IN, "<$datafile") || die "Cannot open $datafile\n";
print LOG "Opening $datafile\n";
++$cd_count;
$cdd_count = "0";
$add_count = "0";
$cut_count = "0";
$mus_count = "0";
while (chomp($input = <IN>)) {
$code = substr($input, 0, 3);
$value = substr($input, 3);
if ($code eq "NAM") {
$cd_name{$cd_count} = $value;
$cd_name = $value;
$acronym = $cd_name{$cd_count};
$cd_acro_name{$cd_count} = &acro;
$cd_acro_name = $cd_acro_name{$cd_count};
print LOG "*** Parsing $cd_name ***\n";
}
if ($code eq "CDD") {
++$cdd_count;
($description_number, $description_value) = split /%/,$value;
$cd_cdd_data{$cd_count, $description_number} = $description_value;
}
if ($code eq "ADD") {
++$add_count;
($cd_add_description{$cd_count, $add_count}, $cd_add_name{$cd_count, $add_count}) = split /%/,$value;
}
if ($code eq "MUS") {
++$mus_count;
($cd_musician{$cd_count, $mus_count}, $cd_instrume{$cd_count, $mus_count}) = split /%/,$value;
}
if ($code eq "CUT") {
++$cut_count;
($cut_number{$cd_count, $cut_count}, $song_name{$cd_count, $cut_count},
$song_length{$cd_count, $cut_count}, $song_copyright{$cd_count, $cut_count})
= split /%/,$value;
$track_number{$cd_count, $cut_count} = $cut_number{$cd_count, $cut_count};
$acronym = $song_name{$cd_count, $cut_count};
$song_acro_name{$cd_count, $cut_count} = &acro;
}
}
close IN;
$add_count{$cd_count} = $add_count;
$cdd_count{$cd_count} = $cdd_count;
$mus_count{$cd_count} = $mus_count;
$cut_count{$cd_count} = $cut_count;
}
# All the data from the available CD .dat files has been processed Make the HTML for each CD;
print LOG "***Processed $cd_count CD files\n\n***Creating CD HTML Files***\n";
&set_html_footer;
for ($makecd_html_counter = "1"; $makecd_html_counter <= $cd_count; ++$makecd_html_counter) {
$cd_acro_name = $cd_acro_name{$makecd_html_counter};
$cd_html_filename = $cd_acro_name . ".html";
$cd_html_filespec = $cd_html_filelocation . $cd_html_filename;
$small_imagename = $cd_acro_name . "_small.jpg";
$large_imagename = $cd_acro_name . "_large.jpg";
$cd_name = $cd_name{$makecd_html_counter};
print LOG " Making HTML for $cd_name. Filespec : $cd_html_filespec\n";
$title = $cd_name;
$cd_html = "";
$cd_html = &make_html_header;
$cd_html .= &set_cdhtml_header;
for ($x = 1; $x <= $mus_count{$makecd_html_counter}; ++$x) {
$cd_html .= $cd_musician{$makecd_html_counter, $x} . " <br>\n";
}
$cd_html .="</td><td width=\"10\"><b>\n";
for ($x = 1; $x <= $mus_count{$makecd_html_counter}; ++$x) {
$cd_html .= ":<br>";
}
$cd_html .="</b></td><td><font color =\"#ffff00\">\n";
for ($x = 1; $x <= $mus_count{$makecd_html_counter}; ++$x) {
$cd_html .= $cd_instrume{$makecd_html_counter, $x} . "<br>\n";
}
$cd_html .="</td></tr></table><hr>";
if ($add_count{$makecd_html_counter} > 0) { $cd_html .= "Additional CD Information<br>\n"; }
for ($x = 1; $x <= $add_count{$makecd_html_counter}; ++$x) {
$cd_html .= "$cd_add_description{$makecd_html_counter, $x} <font color=\"#ffff00\">$cd_add_name{$makecd_html_counter, $x}</font><br>\n";
}
$cd_html .="<br></td><td valign=\"top\"><table border=\"2\"><font color=\"#000000\">
<tr><td align=\"center\"><font size=\"4\">Track #</font></td><td align=\"center\">
<font size=\"4\">Song Title</font></td><td align=\"center\"><font size=\"4\">Length</font></td></tr>\n";
for ($x = 1; $x <= $cut_count{$makecd_html_counter}; ++$x) {
$track_number = $track_number{$makecd_html_counter, $x} + 0;
$cd_html .="<tr><td align=\"center\"> $track_number </td><td>
<a href=\"$zappawebref/so/html/$cd_acro_name/$song_acro_name{$makecd_html_counter, $x}.html\"> $song_name{$makecd_html_counter, $x} </a> </td>
<td align=\"center\"> $song_length{$makecd_html_counter, $x} </td></tr>\n";
}
$cd_html .= "</table></td></table></font><font size=\"2\" color=\"#000000\"><br></center>
Main <a href=\"$zappawebref/index.html\">Zappa</a> Page</font><br>\n";
$cd_html .= $html_footer;
&save_cd_html;
}
print LOG "***$makecd_html_counter CD's HTML files created.\n";
# CD html files all created and saved. Make the song data files;
for ($makesong_data_cdcounter = "1"; $makesong_data_cdcounter <= $cd_count; ++$makesong_data_cdcounter) {
$cd_acro_name = $cd_acro_name{$makesong_data_cdcounter};
$cd_name = $cd_name{$makesong_data_cdcounter};
print LOG "***Making Song Data files for the CD $cd_name\n";
for ($makesong_data_songcounter = "1"; $makesong_data_songcounter <= $cut_count{$makesong_data_cdcounter}; ++$makesong_data_songcounter) {
$song_copyright = $song_copyright{$makesong_data_cdcounter, $makesong_data_songcounter};
$cut_number = $cut_number{$makesong_data_cdcounter, $makesong_data_songcounter};
$song_length = $song_length{$makesong_data_cdcounter, $makesong_data_songcounter};
$song_name = $song_name{$makesong_data_cdcounter, $makesong_data_songcounter};
print LOG " Working on : $song_name - $song_data_filespec\n";
$song_acro_name = $song_acro_name{$makesong_data_cdcounter, $makesong_data_songcounter};
$song_data_filename = $song_acro_name . ".dat";
$song_data_filespec = $song_data_filelocation . $song_data_filename;
if (!-e "$song_data_filespec") {
print LOG " Data file does not exist. Creating...\n";
open (OUT, ">$song_data_filespec") || die "Cannot open $song_data_filespec for write.\n";
print OUT "NAM$song_name\nCDD2%" . "$song_copyright\nCDN$cd_name" . "%" . $cut_number . "%" . "$song_length\n";
for ($x = 1; $x <=$mus_count{$makesong_data_cdcounter}; ++$x) {
print OUT "MUS$cd_musician{$makesong_data_cdcounter, $x}" . "%" . "$cd_instrume{$makesong_data_cdcounter, $x}\n";
}
close OUT;
} else {
print LOG " Data file exists. Opening...\n";
open (IN, "<$song_data_filespec") || die "Cannot open $song_data_filespec for read.\n";
$file_content ="";
while ($line = <IN>) {
$file_content .= $line;
}
$cd_name_flag = index($file_content, $cd_name);
close IN;
if ($cd_name_flag == -1) {
print LOG " Adding $cd_name to Data file\n";
open (OUT, ">>$song_data_filespec") || die "Cannot open $song_data_filespec for update.\n";
print OUT "CDN$cd_name" . "%" . "$cut_number" . "%" . "$song_length\n";
for ($x = 1; $x <= $mus_count{$makesong_data_cdcounter}; ++$x) {
print OUT "MUS" . $cd_musician{$makesong_data_cdcounter, $x} . "%" . $cd_instrume{$makesong_data_cdcounter, $x} . "\n";
}
close OUT;
} else {
print LOG " This CD is already in Data file\n";
}
}
}
}
# All Song Data files created/updated. Make Song HTML files.;
print LOG "***All Song Data files created/updated.\n***Making Song HTML Files\n";
for ($makesong_html_cdcounter = "1"; $makesong_html_cdcounter <= $cd_count; ++$makesong_html_cdcounter) {
$cd_acro_name = $cd_acro_name{$makesong_html_cdcounter};
$cd_name = $cd_name{$makesong_html_cdcounter};
$song_html_dir = $song_html_filelocation . $cd_acro_name;
$cut_count = $cut_count[$makesong_html_cdcounter];
$cdwebref = "$zappawebref/cd/html/$cd_acro_name.html";
print LOG " Creating song HTML files for the songs on $cd_name\n";
for ($makesong_html_songcounter = "1"; $makesong_html_songcounter <= $cut_count{$makesong_html_cdcounter}; ++$makesong_html_songcounter) {
$song_copyright = $song_copyright{$makesong_html_cdcounter, $makesong_html_songcounter};
$cut_number = $cut_number{$makesong_html_cdcounter, $makesong_html_songcounter};
$song_length = $song_length{$makesong_html_cdcounter, $makesong_html_songcounter};
$song_name = $song_name{$makesong_html_cdcounter, $makesong_html_songcounter};
$song_acro_name = $song_acro_name{$makesong_html_cdcounter, $makesong_html_songcounter};
$song_html_filename = $song_acro_name . ".html";
$song_html_filespec = $song_html_filelocation . $cd_acro_name . "/" . $song_html_filename;
$lyrics_filespec = $lyrics_filelocation . "$song_acro_name.lyr";
$track_number = $track_number{$makesong_html_cdcounter, $makesong_html_songcounter} + 0;
print LOG " Creating HTML for $song_name - $song_html_filespec\n";
open (APPEAR, "<$song_data_filelocation" . "$song_acro_name.dat");
$number_song_appearances = "0";
while (chomp($temp = <APPEAR>)) {
if ((substr($temp, 0, 3) eq "CDN") and (substr($temp, 3) eq $cd_name)) {
++$number_song_appearances;
$cd_appearance[$number_song_appearances] = $temp_song_name;
}
}
close APPEAR;
$title = $song_name;
$song_html = &make_html_header;
$song_html .= &make_song_htmlhead;
$cd_disc_number = "1";
$multicd_flag = "0";
if (length($cut_number) > 2) {
$multicd_flag = "1";
$cd_disc_number = ord(substr($cut_number, 2, 1)) - 96;
$song_html .= " on disc $cd_disc_number";
}
$song_html .="<br>\n";
$previous_song_name = "";
$next_song_name = "";
$previous_song_flag = "0";
$next_song_flag = "0";
$both_flag = "0";
if (($cut_number != "1") or (($multicd_flag == "1") and ($cd_disc_number != "1"))) {
$previous_song_flag = "1";
$previous_song_file = $song_acro_name{$makesong_html_cdcounter, $makesong_html_songcounter - 1};
$song_html .= "<font size=\"1\"><a href=\"$zappawebref/so/html/$cd_acro_name/$previous_song_file.html\">Previous Track</a> </font> ";
}
if (($previous_song_flag == "1") and (($cut_number < $cut_count{$makesong_html_cdcounter}) or (($multicd_flag == "1") and ($cd_disc_number != "2")))) {
$both_flag = "1";
$song_html .="<img src=\"$whitespace\" height=\"1\" width=\"30\">";
}
if (($cut_number < $cut_count{$makesong_html_cdcounter}) or (($multicd_flag == "1") and ($cd_disc_number !=2))) {
$next_song_flag = "1";
$next_song_file = $song_acro_name{$makesong_html_cdcounter, $makesong_html_songcounter + 1};
$song_html .= "<font size=\"1\"><a href=\"$zappawebref/so/html/$cd_acro_name/$next_song_file.html\">Next Track</a> </font> ";
}
$song_html .= "$disclaimer\n";
for ($x = 1; $x <= $mus_count{$makesong_html_cdcounter}; ++$x) {
$song_html .= $cd_musician{$makesong_html_cdcounter, $x} . " <br>\n";
}
$song_html .="</td><td width=\"10\"><b>\n";
for ($x = 1; $x <= $mus_count{$makesong_html_cdcounter}; ++$x) {
$song_html .= ":<br>";
}
$song_html .="</b></td><td><font color =\"#ffff00\">\n";
for ($x = 1; $x <= $mus_count{$makesong_html_cdcounter}; ++$x) {
$song_html .= $cd_instrume{$makesong_html_cdcounter, $x} . "<br>\n";
}
$song_html .="</td></tr><tr><td colspan=\"3\"><hr>";
if ($add_count{$makesong_html_cdcounter} > 0) { $song_html .= "Additional CD Information<br>\n"; }
for ($x = 1; $x <= $add_count{$makesong_html_cdcounter}; ++$x) {
$song_html .= "$cd_add_description{$makesong_data_counter, $x} <font color=\"#ffff00\">$cd_add_name{$makesong_data_counter, $x}</font><br>\n";
}
$lyrics_html = "";
$lyrics_exist_flag = "0";
$instrumental_flag = "0";
print LOG " Looking for lyrics file - $lyrics_filespec\n";
if (-e $lyrics_filespec) {
$lyrics_exist_flag = "1";
open (LYRICS, "<$lyrics_filespec");
print LOG " Adding Lyrics...\n";
$song_title = <LYRICS>;
$file_content = "";
while ($file_content = <LYRICS>) {
$lyrics_html .= $file_content . "<br>\n";
}
if ($lyrics_html eq "") {
print LOG " Instrumental\n";
$instrumental_flag = "1";
}
close LYRICS;
}
$song_html .= "</td></tr></table></td><td align=\"center\" valign=\"top\"><br><br><font size=\"2\">";
if ($instrumental_flag != "1") {
if ($lyrics_exist_flag == "1") {
$song_html .="Lyrics - <font color=\"#ff00ff\">© $song_copyright{$makesong_html_cdcounter, $makesong_html_songcounter}</font>";
} else {
$song_html .="<img src=\"$whitespace\" width=\"20\">Sorry there was no lyric file during MakeZappaWorld.pl";
}
}
$song_html .="<br><br><font size=\"3\" face=\"Comic Sans MS\" color=\"#000000\">";
if ($instrumental_flag == "1") {
$song_html .="<img src=\"$whitespace\" width=\"40\">Instrumental Track\n";
}
if (($lyrics_exist_flag == "1") and ($instrumental_flag == "0")) { $song_html .= $lyrics_html; }
$song_html .= "<br><br><font size=\"2\">";
if ($previous_song_flag == "1") {
$song_html .= "<a href=\"$zappawebref/so/html/$cd_acro_name/$previous_song_file.html\">Previous Track</a> ";
}
if ($both_flag = "1") {
$song_html .="<img src=\"$whitespace\" height=\"1\" width=\"30\">";
}
if ($next_song_flag == "1") {
$song_html .= "<a href=\"$zappawebref/so/html/$cd_acro_name/$next_song_file.html\">Next Track</a> </font> ";
}
$song_html .="</td></tr></table></center>";
if ($number_song_appearances > 0) {
$song_html .="<hr><b>$song_name</b> also appears on these other CD's that I own :<br><font size=\"3\">\n";
}
for ($x = 1; $x <= $number_song_appearances; ++$x) {
$acronym = $cd_appearance[$x];
&acro;
$appearance_name = $acronym . ".html";
$song_html .= "<a href=\"$zappawebref/cd/html/$appearance_name\">$cd_appearance[$x]</a><br>";
}
$song_html .= $html_footer;
&save_song_html;
}
}
print LOG "***All Song HTML files created.\n***Making index.html\n";
# All Song html files created. Make index.html
&make_index_head;
open (IN, "</home/tomg/zappa/makeworld/cd.dat") || die "Cannot open /home/tomg/zappa/makeworld/cd.dat\n";
while (chomp($input = <IN>)) {
$acronym = $input;
$cd_name = $input;
&acro;
$cdfilename = "$acronym.dat" ;
if (-e "$cd_data_filelocation" . "$cdfilename") {
$index_html .= "<a href=\"zappawebref/cd/html/$acronym.html\">$cd_name</a>";
} else {
$index_html .= "$cd_name";
}
$index_html .= "<br><br>";
}
&set_index_foot;
close IN;
open (OUT, ">/home/tomg/zappa/index.html");
print OUT "$index_html\n";
close OUT;
# Done!;
sub make_index_head {
$title = "Main";
$index_html = &make_html_header;
$index_html .= "<center><font size=\"6\">FRANK ZAPPA</font><br><font size=\"4\">My CD collection</font><br><br>
If you would like, you can go to the <a href=\"http://www.zappa.com/\">official</a> Frank Zappa page!<br><br>
</center><hr><font size=\"4\" color=\"#000000\">
In 1972, a friend of mine kept telling me that I <b>had</b> to listen to Frank\'s albums, he insisted
that Frank was <b>it</b>. So I listened. At the time I liked the music more for the zaniness
of the lyrics and weird look of the group, but grew to appreciate the talent
that Frank had, including the ability to get GREAT musicians to play the music he had written.
This is not a complete list of Frank\'s CD\'s, this is a list
of the CD\'s that I own. I am adding data as fast as I can, so check back
often. Please see the disclaimer at the bottom of this page for further information.
<a href=\"http://www.therealtomgreen.com/zappa/makeworld.html\">Here</a> is some information on how I created the Frank Zappa web pages.
<hr><br></font><br></font><font size=\"5\" color=\"#000000\">";
}
sub set_index_foot {
$index_html .="<hr>Return to <a href=\"index.html#top\">top</a> of page.<br><br>
All information contained in these pages
is copyrighted by one or more of the following : Verve records, Rykodisc,
Capitol Records, Barking Pumpkin Records, Warner Brothers, Zappa Family Trust,
and anyone else who has the rights to the material presented here. Any errors
or omissions are my fault.
<br><br><br>An excerpt from 'The REAL Frank Zappa Book', by Frank Zappa with Peter
Occhiogrosso. Poseidon Press, Simon and Schuster ISBN 0-671-63879-X. A GREAT book, go
out and buy it today!<br><br>
<i>\"Information is not knowledge, knowledge is not wisdom, wisdom is not truth, truth is
not beauty, beauty is not love, love is not music. Music is the best.\"</i> Frank Zappa,
<i>Joe's Garage</i>, 1979<br><br>
<center><b>What Do You Do For A Living, Dad?</b></center><br>
If any of my kids ever asked me that question, the answer would have to be : \"<i>What I
<b>do</b> is composition</i>.\" I just happen to use material other than <i>notes</i>
for the pieces. Composition is a process of organization, very much like architecture. As
long as you can conceptualize what that organizational process is, you can be a 'composer'-
<b>in any medium you want.</b> You can be a 'video composer', a 'film composer', a
'choreography composer', a 'social engineering composer'--whatever. Just give me some
<i>stuff</i>, and I'll organize it for you. That's what I do.<br><i>Project/Object</i> is
a term I have used to describe the overall concept of my work in various mediums. Each
project (in whatever realm), or interview connected to it, is part of a larger object,
for which there is no 'technical name.' Think of the connecting material in the
Project/Object this way: A novelist invents a character. If the character is a good one,
he takes on a life of his own. Why should he get to go to only one party? He could pop
up anytime in a future novel. Or: Rembrandt got his 'look' by mixing just a little brown
into every other color--he didn't do 'red' unless it had brown in it. The brown itself
wasn't especially fascinating, but the result of its obsessive inclusion was that 'look.'
In the case of the <i>Project/Object</i>, you may find a little <i>poodle</i> over here,
a little <i>blow job</i> over there, etc., etc. I am not obsessed by <i>poodles</i> <b>or
</b><i>blow jobs</i>, however; these words (and others of equal insignificance), along with
pictorial images and melodic themes, recur throughout the albums, interviews, films, videos
(and this book) for no other reason than to unify the 'collection.'<br><br><br><center>
<b>The Frame</b></center><br>The most important thing in art is <b>The Frame</b>. For
painting: literally; for other arts: figuratively--because, without this humble appliance,
you can't <b>know</b> where <i>The Art</i> stops and <i>The Real World</i> begins. You have
to put a 'box' around it because otherwise, <b>what is that shit on the wall?</b><br><br>
If John Cage, for instance, says \"<i>I'm putting a contact microphone on my throat, and
I'm going to drink carrot juice, and that's my composition</i>, \" then his gurgling
qualifies as <b>his composition</b> because he put a frame around it and said so.
\"<i>Take it or leave it, I now <b>will</b> this to be <b>music.</b>\"</i> After that it's a
matter of taste. Without the frame-as-announced, it's a guy swallowing carrot juice.<br><br>
So, if <i>music is the best</i>, what <b>is</b> music? Anything <b>can</b> be music, but
it doesn't <b>become music</b> until someone <b>wills</b> it to be music, and the audience
listening to it decides to <b>perceive it as music.</b> Most people can't deal with that
abstraction--or don't want to. They say: \"<i>Gimme <b>the tune</b>. Do I like this
<b>tune?</b> Does it sound like another <b>tune that I like?</b> The more familiar it is,
<b>the better I like it.</b> Hear those three notes there? Those are the three notes I can
sing along with. I like those notes <u>very, very much</u>. Give me a beat. Not a fancy
one. Give me a </i><b>GOOD BEAT</b><i>--something I can dance to. It has to go</i> boom-bap,
boom-boom-<b>BAP.</b><i> If it doesn't, I will <b>hate</b> it <u>very, very much</u>.
Also I want it <b>right away--</b>and then, write me </i>some more songs like that--<i>
over and over and over again, because I'm <u>really</u> into <b>music.</b></i><br><br>
</font><br><br><br><br><br>
<br></font>
<font size=\"1\">This webpage was designed by <a href=\"http:/www.drecknet.com/\">DreckNet</a>.<br>
Problems, Comments or Questions? Contact <a href=\"mailto:webmaster\@drecknet.com\">Webmaster</a>
<br><br><br><br>
</body>
</html>";
}
sub acro {
$originalacronym = $acronym;
$acronym =~ s/[a-z]|\W//g;
if (length($acronym) < 3) {
$acronym = $originalacronym;
$acronym =~ s/\W//g;
}
$acronym = lc($acronym);
}
sub set_cdhtml_header {
$html = "<center><font size=\"5\">FRANK ZAPPA</font><br>
<font size=\"4\" color=\"#ffff00\"><a href=\"$zappawebref/index.html\">My CD collection</a></font><br><br>
<font size=\"6\" face=\"Comic Sans MS\"><b>$cd_name</b></font>
<hr><table border=\"0\">";
print LOG " Checking for /home/tomg/zappa/images/front_$small_imagename\n";
if (-e "/home/tomg/zappa/images/front_$small_imagename") {
print LOG " *Image Found*\n";
$html .="<td valign=\"top\"><center>
<img src=\"$zappawebref/images/front_$small_imagename\" width=\"108\"><br>
<font size=\"3\">Front Cover<br><font size=\"1\">|
<a href=\"$zappawebref/images/front_$small_imagename\" target=\"_new\">View Small Image</a> |
<a href=\"$zappawebref/images/front_$large_imagename\" target=\"_new\">View Large Image</a> |
<br><br><img src=\"$zappawebref/images/back_$small_imagename\" width=\"108\"><br>
<font size=\"3\">Back Cover<br><font size=\"1\">|
<a href=\"$zappawebref/images/back_$small_imagename\" target=\"_new\">View Small Image</a> |
<a href=\"$zappawebref/images/back_$large_imagename\" target=\"_new\">View Large Image</a> |<br>
</center></td>";
} else {
$html .="<td valign=\"top\"><font size=\"3\"><img src=\"$zappawebref/images/coverimage.jpg\" hspace=\"30\"></td>";
}
$html .="<td><font size=\"3\" color=\"#000000\">
<b>$cd_name</b></font><font size=\"2\"> ($cd_cdd_data{$cd_count, 0} CD set)
<br></font><font size=\"2\" color=\"#000000\">
$cd_cdd_data{$cd_count, 1}<br>
$cd_cdd_data{$cd_count, 2}<br>
<br></font><font size=\"3\" color=\"#000000\">Artists who performed on this CD<hr><table border=\"0\"><tr><td>\n";
}
sub make_song_htmlhead {
$html = "<center><table border=\"1\"><td width=\"225\"><center>
<font size=\"6\">FRANK ZAPPA</font><br>
<font size=\"4\" color=\"#ffff00\"><a href=\"#zappawebref/index.html\">My CD collection</a></font><br>
<hr><font size=\"5\" color=\"#ffff00\">$song_name<br>
<font size=\"3\" color=\"#000000\">from the CD<br><font size=\"4\">
<a href=\"$cdwebref\">$cd_name</a></font><font size=\"3\"><br>
Track # $track_number";
}
sub set_song_html_header {
$html = "<center><font size=\"5\">FRANK ZAPPA</font><br>
<font size=\"4\" color=\"#ffff00\"><a href=\"$zappawebref/index.html\">My CD collection</a></font><br><br>
<font size=\"6\" face=\"Comic Sans MS\"><b>$cd_name</b></font>
<hr><table border=\"0\">";
$html .="<td><font size=\"3\" color=\"#000000\">
<b>$cd_name</b></font><font size=\"2\"> ($cd_cdd_data{$cd_count, 0} CD set)
<br></font><font size=\"2\" color=\"#000000\">
$cd_cdd_data{$cd_count, 1}<br>
$cd_cdd_data{$cd_count, 2}<br>
<br></font><font size=\"3\" color=\"#000000\">Artists who performed on this CD<hr><table border=\"0\"><tr><td>\n";
}
sub make_html_header {
$html_header = "<!doctype html public \"-//ietf//dtd html//en\">
<html>
<head>
<base target=\"_top\">
<title>The REAL Tom Green - Frank Zappa: $title
</title>
</head>
<name=\"#top\">
<a href=\"$webref/\"><img src=\"$webref/images/trtglogo_small.gif\" border=\"0\"></a>
<body bgcolor=\"#84debd\" text=\"#000000\" link=\"#ff0000\" vlink=\"#ff0000\">";
}
sub set_html_footer {
$html_footer = "<hr><font size=\"2\"><b>Problems, Comments or Questions?</b><br>
Contact <a href=\"mailto:tomg\@therealtomgreen.com\">The REAL Tom Green</a><br><br>
<font size=\"1\">This page was designed by <a href=\"http://www.drecknet.com/\">Drecknet</a><br>
Using <a href=\"http://www.textpad.com/\">Textpad</a> and <a href=\"http://www.perl.org/\">PERL</a>
</body>
</html>";
$disclaimer ="</center></td><td>
<font size=\"4\" color=\"#ff0000\">WARNING / GUARANTEE</font><font size=\"2\" color=\"#000000\">
This album contains material which a truly free society would neither fear nor
surpress. In some socially retarded areas, religious fanatics and ultra conservative
political organizations violate your First Amendment Rights by attempting to
censor rock-n-roll albums. We feel that this is un-Contstitutional and un-American.
As an alternative to these government supported programs (designed to keep you docile
and ignorant), Barking Pumpkin is pleased to provide stimulating digital audio
entertainment for those of you who have outgrown <b>the ordinary</b>. The language
contained herein are <b>GUARANTEED NOT TO CAUSE ETERNAL TORMENT IN THE PLACE
WHERE THE GUY WITH THE HORNS AND THE POINTED STICK CONDUCTS HIS BUSINESS.</b>
This guarantee is as real as the threats of the video fundmentalists who use
attacks on rock music in their attempt to transform America into a nation of
check-mailing nincompoops (in the name of Jesus Christ). If there is a hell,
it\'s fires wait for them, not us.</td></tr></table><table border=\"0\"><tr>
<td valign=\"top\"><br><table border=\"0\"><tr><td colspan=\"3\" align=\"center\">
<font size=\"5\">Performers<br><hr></td></tr><tr><td>
<font size=\"3\">";
}
sub save_cd_html {
print LOG " Saving $cd_html_filespec\n";
open (OUT, ">$cd_html_filespec") || die "Cannot open $cd_html_filespec for writing\n";
print OUT $cd_html;
close OUT;
}
sub save_song_html {
print LOG " Saving $song_html_filespec\n";
if (!-e "$song_html_dir") {
mkdir "$song_html_dir";
}
open (OUT, ">$song_html_filespec") || die "Cannot open $song_html_filespec for writing\n";
print OUT $song_html;
close OUT;
}
Back to the Main Zappa Page.
Problems, Comments or Questions?
Contact The REAL Tom Green
This page was designed by Drecknet
Using Textpad and PERL