aggregate: If a feed fails to be downloaded, try again immediatly next time aggregati...
authorJoey Hess <joey@gnu.kitenet.net>
Thu, 18 Dec 2008 02:27:28 +0000 (21:27 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Thu, 18 Dec 2008 02:27:28 +0000 (21:27 -0500)
IkiWiki/Plugin/aggregate.pm
debian/changelog

index 29bc6d0ceba8349f9db5d49e223b1293882e32c7..9b531b6128c1de09d81e9c1b60da25ab736e2732 100644 (file)
@@ -245,6 +245,7 @@ sub preprocess (@) {
        $feed->{template}=$params{template} . ".tmpl";
        delete $feed->{unseen};
        $feed->{lastupdate}=0 unless defined $feed->{lastupdate};
+       $feed->{lasttry}=$feed->{lastupdate} unless defined $feed->{lasttry};
        $feed->{numposts}=0 unless defined $feed->{numposts};
        $feed->{newposts}=0 unless defined $feed->{newposts};
        $feed->{message}=gettext("new feed") unless defined $feed->{message};
@@ -390,8 +391,8 @@ sub mergestate () {
        # fields.
        foreach my $name (keys %myfeeds) {
                if (exists $feeds{$name}) {
-                       foreach my $field (qw{message lastupdate numposts
-                                             newposts error}) {
+                       foreach my $field (qw{message lastupdate lasttry
+                                             numposts newposts error}) {
                                $feeds{$name}->{$field}=$myfeeds{$name}->{$field};
                        }
                }
@@ -458,10 +459,10 @@ sub aggregate (@) {
        error($@) if $@;
 
        foreach my $feed (@_) {
-               $feed->{lastupdate}=time;
+               $feed->{lasttry}=time;
                $feed->{newposts}=0;
                $feed->{message}=sprintf(gettext("last checked %s"),
-                       displaytime($feed->{lastupdate}));
+                       displaytime($feed->{lasttry}));
                $feed->{error}=0;
 
                debug(sprintf(gettext("checking feed %s ..."), $feed->{name}));
@@ -483,6 +484,10 @@ sub aggregate (@) {
                        debug($feed->{message});
                        next;
                }
+
+               # lastupdate is only set if we were able to contact the server
+               $feed->{lastupdate}=$feed->{lasttry};
+
                if ($res->status == URI::Fetch::URI_GONE()) {
                        $feed->{message}=gettext("feed not found");
                        $feed->{error}=1;
index f7085169cbb23dabd26e62d591df718624558106..d8685db09d26c3b202e6fc3d334709a9258ed7c4 100644 (file)
@@ -20,6 +20,9 @@ ikiwiki (2.71) UNRELEASED; urgency=low
   * monotone: When getting the log, tell monotone how many entries
     we want, rather than closing the pipe, which it dislikes. (thm)
   * Coding style change: Remove explcit vim folding markers.
+  * aggregate: If a feed fails to be downloaded, try again immediatly
+    next time aggregation is run, even if the usual time has not passed.
+    Closes: #508622 (Michael Gold)
 
  -- Joey Hess <joeyh@debian.org>  Mon, 17 Nov 2008 14:02:10 -0500