error_reporting( 4 );
$Contrib_Style = 37461;
$NonContrib_Style = 82701;
//// Read in all of the Email Lists
$Email_Lists_Handle = fopen( "./.lists_mixedcase", "r" );
if( !$Email_Lists_Handle )
{
printf( "Error opening Email Lists file (./.lists_mixedcase); Aborting.
\n" );
exit( 0 );
}
$Loop_Count = 0;
while( $Email_Lists_Handle && !feof( $Email_Lists_Handle ))
{
$Email_Lists = fgets( $Email_Lists_Handle );
if( $Loop_Count++ > 1000 )
{
printf( "Error reading Email Lists; Stuck in loop; Aborting.
\n" );
exit(0);
}
if( $Email_Lists[0] == "#" || strlen( $Email_Lists ) < 10 ) continue;
else break;
}
$Email_Lists_Mixed_Case = explode( " ", $Email_Lists );
$List_Count = count( $Email_Lists_Mixed_Case );
for( $a = 0; $a < $List_Count; $a++ ) $Email_Lists_Mixed_Case[ $a ] = str_replace( "\n", "", $Email_Lists_Mixed_Case[ $a ] );
for( $a = 0; $a < $List_Count; $a++ ) $Email_Lists_Mixed_Case_Clean[ $a ] = str_replace( "-List", "", $Email_Lists_Mixed_Case[ $a ] );
for( $a = 0; $a < $List_Count; $a++ ) $Email_Lists_Lower_Case[ $a ] = strtolower( $Email_Lists_Mixed_Case[ $a ] );
for( $a = 0; $a < $List_Count; $a++ ) $Email_Lists_Upper_Case[ $a ] = strtoupper( $Email_Lists_Mixed_Case[ $a ] );
fclose( $Email_Lists_Handle );
//// Parse Command line args. Verify proper construction.
$Valid_Request = 1;
// Style == 37461 == Contributor
// Style == 82701 == NON-Contributor
$Style = $_GET[ Style ];
if( $Style != $Contrib_Style && $Style != $NonContrib_Style )
{
$Valid_Request = 0;
}
if( $Style == $Contrib_Style ) $Contrib = 1;
if( $Style == $NonContrib_Style ) $Contrib = 0;
$View = strtolower( $_GET[ View ] );
if( $View != "txt" && $View != "html" )
{
$Valid_Request = 0;
}
$Chapter = strtolower( $_GET[ Chapter ] );
if( strlen( $Chapter ) != 10 || (!strstr( $Chapter, "-" )) || (strstr( $Chapter, "." )) || (strstr( $Chapter, "/" || (strstr( $Chapter, "\\" )) )))
{
$Valid_Request = 0;
}
$Archive = $_GET[ Archive ];
if( (strstr( $Archive, "-" )) || (strstr( $Archive, "." )) || (strstr( $Archive, "/" )) || (strstr( $Archive, "\\" )))
{
$Valid_Request = 0;
}
$Valid_Archive = 0;
$List_Index=0;
foreach( $Email_Lists_Mixed_Case_Clean as $List )
{
if( $List == $Archive )
{
$Valid_Archive = 1;
break;
}
$List_Index++;
}
if( !$Valid_Request || !$Valid_Archive )
{
echo "Invalid Request
\n";
exit();
}
$ArchiveDescriptor = fopen( "/usr/home/httpd/htdocs/digest/$Email_Lists_Lower_Case[$List_Index]/Digest.$Email_Lists_Mixed_Case_Clean[$List_Index]-List.$Chapter.$View", "r" );
if( !$ArchiveDescriptor )
{
echo "Can't open archive; aborting!
\n";
exit();
}
if( $View == "txt" )
{
echo "
\n";
$In_Contrib_Message = 0;
for( $line = fgets( $ArchiveDescriptor ); !feof( $ArchiveDescriptor ); $line = fgets( $ArchiveDescriptor ) )
{
if( $Contrib && ereg( " Total Messages Posted ... ../../..: .", $line ) )
{
list( $HeaderString, $NumberOfMessages ) = explode( ":", $line );
$NumberOfMessages = str_replace( " ", "", $NumberOfMessages );
$NumberOfMessages = $NumberOfMessages - 1;
echo "$HeaderString: $NumberOfMessages\n";
continue;
}
else if( $Contrib && ereg( " 0\. ..:.. .M - ", $line ) ) // Contrib Index Line Found; Skip.
{
continue;
}
else if( $Contrib && ereg( "________________________________ Message 0 _____________________________________", $line ) )
{
$In_Contrib_Message = 1;
}
else if( $Contrib && ereg( "________________________________ Message 1 _____________________________________", $line ) )
{
$In_Contrib_Message = 0;
}
if( !$In_Contrib_Message )
{
echo "$line";
}
}
echo "
\n";
}
else // $View == "html"
{
$In_Contrib_Message = 0;
for( $line = fgets( $ArchiveDescriptor ); !feof( $ArchiveDescriptor ); $line = fgets( $ArchiveDescriptor ) )
{
if( $Contrib && ereg( "Total Messages Posted: .", $line ) )
{
list( $HeaderString, $NumberOfMessages ) = explode( ":", $line );
$NumberOfMessages = str_replace( "
", "", $NumberOfMessages );
$NumberOfMessages = $NumberOfMessages - 1;
echo "$HeaderString: $NumberOfMessages\n";
continue;
}
else if( $Contrib && ereg( " 0. ..:.. .M -
Message 0
", $line ) )
{
$In_Contrib_Message = 1;
echo "\n";
}
else if( $Contrib && ereg( "
Message 1
", $line ) )
{
$In_Contrib_Message = 0;
}
if( !$In_Contrib_Message )
{
echo "$line";
}
}
}
?>
|
|