From: Joey Hess Date: Wed, 17 Sep 2008 22:13:09 +0000 (-0400) Subject: Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info X-Git-Tag: 2.65~94 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/18d086dde871210c7cc9ca754b9ee3297306a676?hp=39fc9a37dad196ecc2e36a64d17dbbd79c1224f2 Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info --- diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index c1421f246..f47dc58b3 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -420,10 +420,10 @@ sub expire () { #{{{ next unless $feed->{expireage} || $feed->{expirecount}; my $count=0; my %seen; - foreach my $item (sort { ($IkiWiki::pagectime{$b->{page}}||0) <=> ($IkiWiki::pagectime{$a->{page}}||0) } + foreach my $item (sort { $IkiWiki::pagectime{$b->{page}} <=> $IkiWiki::pagectime{$a->{page}} } grep { exists $_->{page} && $_->{feed} eq $feed->{name} } values %guids) { - if ($feed->{expireage} && $IkiWiki::pagectime{$_->{page}}) { + if ($feed->{expireage}) { my $days_old = (time - $IkiWiki::pagectime{$item->{page}}) / 60 / 60 / 24; if ($days_old > $feed->{expireage}) { debug(sprintf(gettext("expiring %s (%s days old)"), @@ -618,10 +618,13 @@ sub add_page (@) { #{{{ writefile(htmlfn($guid->{page}), $config{srcdir}, $template->output); - # Set the mtime, this lets the build process get the right creation - # time on record for the new page. - utime $mtime, $mtime, pagefile($guid->{page}) - if defined $mtime && $mtime <= time; + if (defined $mtime && $mtime <= time) { + # Set the mtime, this lets the build process get the right + # creation time on record for the new page. + utime $mtime, $mtime, pagefile($guid->{page}); + # Store it in pagectime for expiry code to use also. + $IkiWiki::pagectime{$guid->{page}}=$mtime; + } } #}}} sub htmlescape ($) { #{{{ diff --git a/debian/changelog b/debian/changelog index 5ad864c13..bf44d9851 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ ikiwiki (2.65) UNRELEASED; urgency=low - * aggregate: Allow expirecount to work on the first pass. (expireage still - needs to wait for the pages to be rendered though) + * aggregate: Expire excess or old items on the same pass that adds them, + not only on subsequent passes. * editdiff: Broken since 2.62 due to wrong syntax, now fixed. * aggregate: Support atom feeds with only a summary element, and no content elements.