#!/usr/bin/perl

#########################################################
#travers.pl
#
# Script som går gjennom alle html-filer fra gitt path
# og finner linker som peker til .txt .jpg .jpeg .gif 
# samt .mov.
# Sender output til stdout
#
# Eksempel på bruksmåte:
# travers.pl /www/almashriq/htdocs/ > ./sider_uten_html.html
#
# Linje 94 kan endres på slik at søkekriteriet blir riktig.
#
#########################################################
#
# Kode av Morten Gustavsen 6/5-1999
# Endret  Morten Gustavsen 11/5-1999
# Sist endret Thomas Gundersen 2-5/6-1999
#
#########################################################

#use Cwd;

$a = "&lt;";
$b = "&gt;";


# Skjekk input. 
# Skriv ut veiledning om bruk.

if ($#ARGV != 0){
    print "\nSyntax: $0 /path_to_start_travers/\n\n";
    exit;
}

# Traverserer gjennom katalogstrukturen fra path gitt ved parameter 0
# Rekursiv funksjon som går i gjennom alle underkataloger bortset fra
# ddc og venner

print "<html><head><title>Resultat av $0</title></head><body>";
print "Resultat av \"$0\"<p>Sider som inneholder linker til filer av typen gif, jpg, jpeg, mpg, txt<p>";
travers(@ARGV[0]);
print "</body></html>";

sub travers(){

    local @allfiles = <$_[0]*>;

    foreach  (@allfiles){
	if ( -d && !-l){
	    if ( $_ ne "." && $_ ne ".." && $_ ne "\/www\/almashriq\/htdocs\/ddc" && $_ ne "\/www\/almashriq\/htdocs\/admin"){
	    #if ( $_ ne "." && $_ ne ".." && $_ ne "\/www\/almashriq\/htdocs\/ddc"){

		travers("$_/");
	    }
	}
	elsif( -f ){
	    if ( /.*html$/ ){
		runtest($_);
	    }
	}      
    }
}


# Skjekker filer for linjer som inneholder "<a href="noetekst.txt>"

sub runtest(){

    
    local $filnavnet = @_[0];
    #print "Tester: $dir/$filnavnet\n";

    open F, "< $filnavnet" || die "Could not open $filnavnet for reading";
    local @x = <F>;
    local @y;
    
    local $y = $filnavnet;
    $y =~ s/^(\/www\/almashriq\/htdocs\/)(.*)/$2/;

    close F;
    local $linecount = 0;
    local $filefound = 0;
    foreach (@x){
	$linecount++;
	$z = $_;
	if (/href=\"/){
	    $_ =~ s/(.*)(<img.*)/$1/;
	    $_ =~ s/.*(<a href=\".*\">).*/$1/;
	    
	    #Linja under kan endres på for å filtrere vekk, legge til søkekriterie.
            if (/\.txt|\.jpg|\.jpeg|\.gif/){  
	    #if (/\.txt/){
		$z =~ s/</$a/g;
		$z =~ s/>/$b/g;

                push @y, "$linecount:\t$z";
		$filefound = 1;
	    }
	}
    }
    if($filefound){
	print "<a href=\"http://almashriq.hiof.no/$y\" target=\"other\">$filnavnet</a>:<br>\n<ul>\n<pre>@y</pre>\n</ul><p>\n\n";
    }

}
