X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=mkgallery.pl;h=de6b92065611c5a7caa8e22edcccd7bd4156ad7f;hb=bdf71ca3783601e0af6f33940cb769315d05bf66;hp=bdd9a4a7111a9ba372794971d266ce874c6a740f;hpb=1b45c1f055e04ed649d321d002d44b0f55d7fc08;p=mkgallery.git diff --git a/mkgallery.pl b/mkgallery.pl index bdd9a4a..de6b920 100755 --- a/mkgallery.pl +++ b/mkgallery.pl @@ -82,14 +82,14 @@ if ($feed && ! ($haverss || $haveatom)) { my $term = new Term::ReadLine "Edit Title"; FsObj->new(getcwd)->iterate; -if ($rssobj) { $rssobj->{'rss'}->save($rssobj->{'file'}); } +if ($rssobj) { $rssobj->{-rss}->save($rssobj->{-savepath}); } sub help { print STDERR <<__END__; usage: $0 [options] --help: print help message and exit - --incpath: do not try to find .gallery2 diretory upstream, use + --incpath: do not try to find .gallery2 directory upstream, use specified path (absolute or relavive). Use with causion. --debug: print a lot of debugging info to stdout as you run --asktitle: ask to edit album titles even if there are ".title" files @@ -189,60 +189,48 @@ sub initrss { my $fullpath=$self->{-fullpath}; my $toppath=$self->{-toppath}; my $inc=$self->{-inc}.$incdir.'/'; - my $conffile=$toppath.'/'.$incdir.'/rss.conf'; + my $conffile=$toppath.'/'.$incdir.'/feed.conf'; my $CONF; - if ($feed) { - if (open($CONF,">".$conffile)) { - print $CONF "file: ",$feed,"\n"; - close($CONF); + if (! $incpath) { + if ($feed) { + if (open($CONF,">".$conffile)) { + print $CONF $feed,"\n"; + close($CONF); + } else { + print STDERR "could not open $conffile: $!\n"; + } } else { - print STDERR "could not open $conffile: $!\n"; - } - } else { - if (open($CONF,$conffile)) { - my $ln=<$CONF>; - close($CONF); - chop $ln; - my ($k,$v)=split(':', $ln); - $k =~ s/^\s*//; - $k =~ s/\s*$//; - $v =~ s/^\s*//; - $v =~ s/\s*$//; - if ($k eq 'file') { - $feed=$v; + if (open($CONF,$conffile)) { + $feed=<$CONF>; + close($CONF); + chop $feed; } } } return unless ($feed); - $rssobj->{'file'} = $self->{-toppath}.'/'.$feed; - $rssobj->{'rss'} = new XML::RSS (version=>'2.0'); - if ( -f $rssobj->{'file'} ) { - $rssobj->{'rss'}->parsefile($rssobj->{'file'}); - my $itemstodel = @{$rssobj->{'rss'}->{'items'}} - 15; + my ($feedfile, $feedbase, $feedhub) = split(',', $feed); + $feedbase .= '/' unless ($feedbase =~ /\/$/); + print "($feedfile, $feedbase, $feedhub)\n"; + + $rssobj->{-savepath} = $self->{-toppath}.'/'.$feedfile; + $rssobj->{-file} = $feedfile; + $rssobj->{-base} = $feedbase; + $rssobj->{-hub} = $feedhub; + $rssobj->{-rss} = new XML::RSS (version=>'2.0'); + if ( -f $rssobj->{-file} ) { + $rssobj->{-rss}->parsefile($rssobj->{-file}); + my $itemstodel = @{$rssobj->{-rss}->{'items'}} - 15; while ($itemstodel-- > 0) { - pop(@{$rssobj->{'rss'}->{'items'}}) + pop(@{$rssobj->{-rss}->{'items'}}) } - $rssobj->{'rss'}->save($rssobj->{'file'}); + $rssobj->{-rss}->save($rssobj->{-savepath}); } else { - my $link; - my $p1; - my $p2; - for ($p1=0,$p2=length($toppath); - substr($feed,$p1,3) eq '../' && $p2>0; - $p1+=3,$p2=rindex($toppath,'/',$p2-1)) {;} - $link=substr($toppath,$p2); - $link =~ s%^/%%; - $link .= '/' if ($link); - while (($p1=index($feed,'/',$p1+1)) >= 0) { - $link = '../'.$link; - } - - $rssobj->{'rss'}->channel( + $rssobj->{-rss}->channel( title=>'Gallery', - link=>$link, + link=>$feedbase, description=>'Gallery Feed', #language=>$language, #rating=>$rating, @@ -253,9 +241,9 @@ sub initrss { #managingEditor=>$editor, #webMaster=>$webMaster ); - $rssobj->{'rss'}->save($rssobj->{'file'}); + $rssobj->{-rss}->save($rssobj->{-savepath}); } - $self->{-rss} = $rssobj->{'rss'}; + $self->{-rss} = $rssobj->{-rss}; } sub iterate { @@ -661,8 +649,8 @@ sub startindex { if ($rssobj) { $rsslink=Link({-rel=>'alternate', -type=>'application/rss+xml', - -title=>'RSS', - -href=>$self->{-inc}.$feed}); + -title=>'Gallery Feed', + -href=>$rssobj->{-base}.$rssobj->{-file}}); } print $IND start_html(-title => $title, -encoding=>"utf-8", @@ -696,6 +684,7 @@ sub startindex { -version => $version, -depth => $self->{-depth}, -title => $title, + -path => $self->{-fullpath}, -breadcrumbs => "breadcrumbs unimplemented", ); print $IND eval $prm,"\n"; @@ -741,9 +730,9 @@ sub endindex { $self->{-title}, $self->{-numofimgs}, $self->{-numofsubs}; - my $rsslink=$rssobj->{'rss'}->channel('link'). + my $rsslink=$rssobj->{-rss}->channel('link'). $self->{-relpath}."index.html"; - $rssobj->{'rss'}->add_item( + $rssobj->{-rss}->add_item( title => $self->{-title}, link => $rsslink, description => $rsstitle,