X-Git-Url: http://www.average.org/gitweb/?p=mkgallery.git;a=blobdiff_plain;f=mkgallery.pl;h=1031da6949dfab9397931ccfc0adfa993dfa33b5;hp=bf37ddef5288f395523339c867223b09f58d97b5;hb=5527f9d9dd107c49860360979bcea661d83039e2;hpb=6f6d8eaf8aeb08515d5f11b224d3d5a25b092e78 diff --git a/mkgallery.pl b/mkgallery.pl index bf37dde..1031da6 100755 --- a/mkgallery.pl +++ b/mkgallery.pl @@ -29,6 +29,7 @@ package FsObj; use strict; use Carp; use POSIX qw/getcwd strftime/; +use HTTP::Date; use CGI qw/:html *table *Tr *td *center *div *Link/; use Image::Info qw/image_info dim/; use Term::ReadLine; @@ -116,7 +117,6 @@ sub new { $class = $this; my $root=shift; $self = { - -depth=>0, -root=>$root, -fullpath=>$root, }; @@ -158,6 +158,7 @@ sub initpaths { $pos=index($inc,'/',$pos+1)) { $dp++; } + $self->{-depth} = $dp; for ($pos=length($fullpath);$dp>0 && $pos>0; $pos=rindex($fullpath,'/',$pos-1)) { $dp--; @@ -173,14 +174,16 @@ sub initpaths { $self->{-inc} = 'NO-.INCLUDE-IN-PATH/'; # won't work anyway $self->{-rss} = ''; $self->{-relpath} = ''; + $self->{-depth} = 0; } } sub initrss { my $self=shift; # this is not a method but we cheat my $fullpath=$self->{-fullpath}; + my $toppath=$self->{-toppath}; my $inc=$self->{-inc}.$incdir.'/'; - my $conffile=$self->{-toppath}.'/'.$incdir.'/rss.conf'; + my $conffile=$toppath.'/'.$incdir.'/rss.conf'; my $CONF; if ($rssfile) { @@ -218,9 +221,16 @@ sub initrss { } $rssobj->{'rss'}->save($rssobj->{'file'}); } else { - my $link=""; - for (my $pos=index($rssfile,'/');$pos>=0; - $pos=index($rssfile,'/',$pos+1)) { + my $link; + my $p1; + my $p2; + for ($p1=0,$p2=length($toppath); + substr($rssfile,$p1,3) eq '../' && $p2>0; + $p1+=3,$p2=rindex($toppath,'/',$p2-1)) {;} + $link=substr($toppath,$p2); + $link =~ s%^/%%; + $link .= '/' if ($link); + while (($p1=index($rssfile,'/',$p1+1)) >= 0) { $link = '../'.$link; } @@ -672,6 +682,9 @@ sub startindex { ); print $IND eval $prm,"\n"; } else { + print STDERR "could not open ", + $self->{-toppath}.'/'.$incdir.'/header.pl', + " ($!), reverting to default header"; print $IND a({-href=>"../index.html"},"UP"),"\n", h1({-class=>'title'},$title),"\n", } @@ -696,6 +709,10 @@ sub endindex { -breadcrumbs => "breadcrumbs unimplemented", ); print $IND eval $prm,"\n"; + } else { + print STDERR "could not open ", + $self->{-toppath}.'/'.$incdir.'/footer.pl', + " ($!), reverting to default empty footer"; } print $IND end_html,"\n"; @@ -712,6 +729,7 @@ sub endindex { title => $self->{-title}, link => $rsslink, description => $rsstitle, + pubDate => time2str(time), ); } }