expoweb/noinfo/make-indxal2.pl
2003-05-10 19:58:16 +02:00

437 lines
13 KiB
Perl
Executable File

#!/usr/bin/perl -w
use strict;
-d "autogen" or mkdir "autogen", 0755;
open IDXALL, ">indxal.htm" or die $!;
print IDXALL <<END;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!-- *** This file is auto-generated - edit cavetab.csv instead -->
<html lang="en">
<head>
<title>Loser Plateau area : Cave description index</title>
</head>
<body>
<h1>Kataster Gruppe 1623:<br>Loser Augst-Eck - INDEX</h1>
<!-- <dl compact> -->
<table border=0 frame=0>
END
<>; # eat header line
while (<>) {
chomp;
y/\t/ /;
s/\"\"/\"/g;
my @fields = split(/,/, $_);
#print "$_\n";
#print @fields;
$_ = "\"\t";
my $statement;
foreach $statement (@fields)
{
#print "$_ z\n";
#print "$statement\n";
if ($_ =~ /\t$/)
{
if ($statement =~ /^"/)
{
if ($statement =~ /"$/)
{
$_ = "$_$statement\t";
}
else
{
$_ = "$_$statement,";
}
}
else
{
$_ = "$_\"$statement\"\t";
}
}
else
{
if ($statement =~ /"$/)
{
$_ = "$_$statement\t";
}
else
{
$_ = "$_$statement,";
}
}
}
#print "$_\n\n";
s/"\t"/\t/g;
s/\\"/"/g;
#print "$_\n\n";
my ($dummy, $kat_num, $kat_status, $ents, $other_number, $mult_ents, $file, $name, $unofficial_name, $comment, $area, $no_info, $explorers, $u_description, $references, $u_centre_line, $u_drawn_survey, $survex_file, $length, $depth, $extent, $header, $notes, $ent_name, $tag_punkt, $other_punkt, $desc_other_punkt, $exact_punkt, $fix_type, $northing, $easting, $altitude, $bearings, $map, $location, $approach, $ent_desc, $ent_photo, $marking) = split /\t/, $_;
my $number = $kat_num;
if ($number eq "") {
$number = $other_number;
$other_number = "";
}
my $e = $ents;
$e =~ s/ +/&nbsp;/g;
#print IDXALL "<dt><a name=\"$number\">$number&nbsp;<small>$e</small></a><dd>";
print IDXALL "<tr><td><a name=\"$number\">$number&nbsp;<small>$e</small></a></td><td>";
# if ($file eq "" && $number !~ m!/!) {
$number =~ s/\//-/g;
$number =~ s/\?/q/;
$file = "autogen/$number.htm";
#print "$file\n";
open FILE, ">$file" or die $!;
print FILE <<END;
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html lang=en>
<head>
<title>
END
if ($kat_num ne "") {
print FILE "1623:$kat_num\n";
} else {
print FILE "$number\n";
}
print FILE <<END;
</title>
</head>
<body>
<center>
END
print FILE "$header\n";
print FILE <<END;
<table border=0 width=100%>
<tr><th align=left><font size=+2>$number $ents</font></th>
<th align=center><font size=+2>$name</font></th>
<th align=right><font size=+2>$kat_status</font></th></tr>
END
if ($other_number ne "") {
if ($unofficial_name ne "") {
print FILE "<tr><th></th><th align=center lang=de><font size=+2>= $other_number ($unofficial_name)</font></th></tr>";
}
else {
print FILE "<tr><th></th><th align=center lang=de><font size=+2>= $other_number</font></th></tr>";
}
}
else {
if ($unofficial_name ne "") {
print FILE "<tr><th></th><th align=center lang=de><font size=+2>($unofficial_name)</font></th></tr>";
}
}
print FILE <<END;
</table></center>
<p>
END
if ($length ne "") {
print FILE "<b>Length:</b> $length ";
}
if ($depth ne "") {
print FILE "<b>Depth:</b> $depth ";
}
if ($extent ne "") {
print FILE "<b>Extent:</b> $extent ";
}
print FILE "\n<p>\n";
# Entrance specific bit
if($mult_ents eq "yes"){
print FILE "<menu>";
my $e_mult_ents;
do{
my $e = <>;
chomp;
$e =~ y/\t/ /;
$e =~ s/\"\"/\"/g;
my @fields = split(/,/, $e);
#print "$e\n";
#print @fields;
$e = "\"\t";
my $statement;
foreach $statement (@fields)
{
#print "$_ z\n";
#print "$statement\n";
if ($e =~ /\t$/)
{
if ($statement =~ /^"/)
{
if ($statement =~ /"$/)
{
$e = "$e$statement\t";
}
else
{
$e = "$e$statement,";
}
}
else
{
$e = "$e\"$statement\"\t";
}
}
else
{
if ($statement =~ /"$/)
{
$e = "$e$statement\t";
}
else
{
$e = "$e$statement,";
}
}
}
#print "$e\n\n";
$e =~ s/"\t"/\t/g;
$e =~ s/\\"/"/g;
#print "$_\n\n";
my ($edummy, $ekat_num, $ekat_status, $eents, $eother_number, $emult_ents, $efile, $ename, $eunofficial_name, $ecomment, $earea, $eno_info, $eexplorers, $eu_description, $ereferences, $eu_centre_line, $eu_drawn_survey, $esurvex_file, $elength, $edepth, $eextent, $eheader, $enotes, $eent_name, $etag_punkt, $eother_punkt, $edesc_other_punkt, $eexact_punkt, $efix_type, $enorthing, $eeasting, $ealtitude, $ebearings, $emap, $elocation, $eapproach, $eent_desc, $eent_photo, $emarking) = split /\t/, $e;
my $enumber = $ekat_num;
if ($enumber eq "") {
$enumber = $eother_number;
$eother_number = "";
}
print FILE "\n<li><a href=\"$efile\">$enumber$eents </a>";
if ($eent_name ne "") {
print FILE " $eent_name";
}
if ($ealtitude ne "") {
print FILE " Altitude: $ealtitude ";
}
if ($enorthing ne "") {
print FILE " Northing: $enorthing ";
}
if ($eeasting ne "") {
print FILE " Easting: $eeasting ";
}
if ($efix_type ne "") {
print FILE " Fix type: $efix_type ";
}
if ($etag_punkt ne "") {
print FILE "Fix position: tag";
}
else{
if ($eother_punkt ne "") {
if ($edesc_other_punkt ne "") {
print FILE "Fix position: $edesc_other_punkt";
}
else{
print FILE "Fix position: Do not know";
}
}
else{
if ($eexact_punkt ne "") {
print FILE "Fix position: on drip line/highest closed contour";
}
}
}
$e_mult_ents = $emult_ents;
}
while($e_mult_ents ne "last entrance");
print FILE "</menu>";
}
else{
if ($ent_name ne "") {
print FILE "<b>Entrance Name:</b> $ent_name <p>";
}
if ($altitude ne "") {
print FILE "<b>Altitude:</b> $altitude ";
}
if ($northing ne "") {
print FILE "<b>Northing:</b> $northing ";
}
if ($easting ne "") {
print FILE "<b>Easting:</b> $easting ";
}
if ($fix_type ne "") {
print FILE "<b>Fix type:</b> $fix_type ";
}
if ($tag_punkt ne "") {
print FILE "<b>Fix position:</b> tag";
}
else{
if ($other_punkt ne "") {
if ($desc_other_punkt ne "") {
print FILE "<b>Fix position:</b> $desc_other_punkt";
}
else{
print FILE "<b>Fix position:</b> Do not know";
}
}
else{
if ($exact_punkt ne "") {
print FILE "<b>Fix position:</b> exact point";
}
}
}
}
# Cave general bit
#print FILE "\n<p>\n";
if ($location ne "") {
print FILE "\n<p><b>Location:</b> $location";
}
if ($bearings ne "") {
print FILE "\n<p><b>Bearings:</b> $bearings";
}
if ($approach ne "") {
print FILE "\n<p><b>Approach:</b> $approach";
}
if ($map ne "") {
print FILE "\n<p><b>Map:</b> $map";
}
if ($ent_desc ne "") {
print FILE "\n<p><b>Entrance Description:</b> $ent_desc";
}
if ($ent_photo ne "") {
print FILE "\n<p><b>Entrance Photo:</b> $ent_photo";
}
if ($marking ne "") {
print FILE "\n<p><b>Marking:</b> $marking";
}
if ($references ne "") {
print FILE "\n<p><b>References:</b> $references";
}
if ($u_description ne "") {
print FILE "\n<p><b>Underground Description:</b> $u_description";
}
if ($notes ne "") {
print FILE "\n<p><b>Notes:</b> $notes";
}
if ($explorers ne "") {
print FILE "\n<p><b>Explorers:</b> $explorers";
}
if ($u_centre_line ne "") {
print FILE "\n<p><b>Centre Line:</b> $u_centre_line";
}
if ($u_drawn_survey ne "") {
print FILE "\n<p><b>Survey:</b> $u_drawn_survey";
}
if ($survex_file ne "") {
print FILE "\n<p><b>Survex file:</b> $survex_file";
}
print FILE <<END;
<hr>
<!-- LINKS -->
<img alt="&gt;" src="../../icons/lists/0.png">
<!--
<a href="index.htm#$number">Schwarzmooskogel ridge area</a><br>
<img alt="&gt;" src="../../icons/lists/0.png">
-->
<a href="../indxal.htm#$number">Full Index</a><br>
<img alt="&gt;" src="../../icons/lists/0.png">
<a href="../areas.htm">Other Areas</a><br>
<img alt="&gt;" src="../../icons/lists/0.png">
<a href="../index.htm">Back to Expedition Intro page</a>
</body>
</html>
END
close FILE;
# }
if ($file ne "") {
print IDXALL "<a href=\"$file\">";
my $f = $file;
$f =~ s/#.*//;
if (! -f $f) {
print STDERR "Warning: file `$f' not found\n";
} else {
open FILE, $f;
my $n;
while (<FILE>) {
if (m!<font size=\+2(?: lang=[^>]*)?>([^>]*?)(?:&nbsp;|\s)+(?:$number)</font>!i) {
$n = $1;
last;
}
if (m!<font size=\+2(?: lang=[^>]*)?>([^>]*?(?:h&ouml;hle|schacht|shaft))</font>!i) {
$n = $1;
last;
}
if (m!<th align=center><font size=\+2(?: lang=[^>]*)?>([^>]*?)</font>!i) {
$n = $1;
last;
}
if (m!<th align=center>([^>]*?)</th>!i) {
$n = $1;
last;
}
}
close FILE;
if (!defined $n) {
print STDERR "no name found in $f for $number\n";
} else {
my $n2 = $n;
my $name2 = $name;
$n2 =~ s/ \(.*\)$//;
$name2 =~ s/ \(.*\)$//;
$n2 =~ s/ CUCC\b//;
$name2 =~ s/ CUCC\b//;
if ($name2 =~ m!^\Q$n2\E(?:[ /]\Q$number\E)?$!i) {
#print STDERR "OK $number $n\n";
} else {
print STDERR "BAD $number : `$n' != `$name' in $f\n";
}
}
}
}
if ($name eq "") {
$name = "?";
}
print IDXALL $name;
if (length $unofficial_name) {
print IDXALL " ($unofficial_name)";
}
if (length $other_number) {
print IDXALL " ($other_number)";
}
if (length $file) {
print IDXALL "</a>";
}
if (length $comment) {
print IDXALL " - $comment";
}
#print IDXALL "\n";
print IDXALL "</tr>\n";
}
print IDXALL <<END;
<!--</dl>-->
</table>
<hr>
<!-- LINKS -->
<img alt="&gt;" src="../icons/lists/0.png">
Back to <a href="../index.htm">CUCC Home page</a><br>
<img alt="&gt;" src="../icons/lists/0.png">
Back to <a href="index.htm">Expedition Intro page</a><br>
<img alt="&gt;" src="../icons/lists/0.png">
<b>Main Indices:</b><br>
<img alt="---&gt;" src="../icons/lists/1.png">
<a href="infodx.htm"><b>Index</b> to Expo</a> information pages<br>
<img alt="---&gt;" src="../icons/lists/1.png">
<a href="areas.htm">Description of CUCC's area</a> and split to subareas<br>
<img alt="---&gt;" src="../icons/lists/1.png">
List of (links to) <a href="pubs.htm">published reports and logbooks</a><br>
<img alt="&gt;" src="../icons/lists/0.png">
<b>Pictures:</b><br>
<img alt="---&gt;" src="../icons/lists/1.png">
<a href="gall0.htm">Text only Index</a><br>
<img alt="---&gt;" src="../icons/lists/1.png">
<a href="gallery/0.htm">Index pages (with thumbnails)</a><br>
<img alt="&gt;" src="../icons/lists/0.png">
Other info:<br>
<img alt="---&gt;" src="../icons/lists/1.png">
Table of <a href="folk/index.htm">members of CUCC expeditions</a> 1976-99<br>
<img alt="---&gt;" src="../icons/lists/1.png">
<a href="others/index.htm">Other groups</a> who have worked in the area.<br>
<img alt="---&gt;" src="../icons/lists/1.png">
<a href="1626/index.htm">Adjacent area 1626</a>
</body>
</html>
END
close IDXALL;