From 93b575d6b3d8d6f9a38e25e70c21fdcfa43c4755 Mon Sep 17 00:00:00 2001 From: Eugene Crosser Date: Fri, 5 Sep 2008 09:46:01 +0000 Subject: [PATCH] RSS generation OK, now it creates RSS file with apparently correct *relative* links It seems that client(s), at least Firefox, does not like relative links. In short, it does not work. Don't use it. --- mkgallery.pl | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/mkgallery.pl b/mkgallery.pl index bf37dde..0e3423c 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; @@ -179,8 +180,9 @@ sub initpaths { 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 +220,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; } @@ -712,6 +721,7 @@ sub endindex { title => $self->{-title}, link => $rsslink, description => $rsstitle, + pubDate => time2str(time), ); } } -- 2.39.2