about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-09-13 22:35:45 +0000
committerEric Wong <e@80x24.org>2015-09-13 22:36:13 +0000
commit22fd855b498909bec6ca7112ace99ea392741992 (patch)
treed8f5bc4479ce8086a3b1951888531e0f06708050 /lib
parent6ffa9c19e710ee2ece98a987477e9c5baaca13cd (diff)
downloadpublic-inbox-22fd855b498909bec6ca7112ace99ea392741992.tar.gz
We'll be reusing this code further in the next commit.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/Feed.pm21
1 files changed, 9 insertions, 12 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index 258ef03b..5a2f62b1 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -68,9 +68,7 @@ sub emit_atom {
         each_recent_blob($ctx, sub {
                 my ($path, undef, $ts) = @_;
                 if (defined $x) {
-                        $fh->write($x . '<updated>' .
-                                   strftime(DATEFMT, gmtime($ts)) .
-                                   '</updated>');
+                        $fh->write($x . feed_updated(undef, $ts));
                         $x = undef;
                 }
                 add_to_feed($feed_opts, $fh, $path, $git);
@@ -317,11 +315,12 @@ sub mime_header {
         PublicInbox::Hval->new_oneline($mime->header($name))->raw;
 }
 
-sub feed_date {
-        my ($date) = @_;
-        my @t = eval { strptime($date) };
+sub feed_updated {
+        my ($date, $ts) = @_;
+        my @t = eval { strptime($date) } if defined $date;
+        @t = gmtime($ts || time) unless scalar @t;
 
-        scalar(@t) ? strftime(DATEFMT, @t) : 0;
+        '<updated>' . strftime(DATEFMT, @t) . '</updated>';
 }
 
 # returns 0 (skipped) or 1 (added)
@@ -342,9 +341,7 @@ sub add_to_feed {
         $mime = undef;
 
         my $date = $header_obj->header('Date');
-        $date = PublicInbox::Hval->new_oneline($date);
-        $date = feed_date($date->raw) or return 0;
-        $date = "<updated>$date</updated>";
+        my $updated = feed_updated($date);
 
         my $title = mime_header($header_obj, 'Subject') or return 0;
         $title = title_tag($title);
@@ -356,10 +353,10 @@ sub add_to_feed {
         $email = PublicInbox::Hval->new_oneline($email)->as_html;
 
         if (delete $feed_opts->{emit_header}) {
-                $fh->write(atom_header($feed_opts, $title) . $date);
+                $fh->write(atom_header($feed_opts, $title) . $updated);
         }
         $fh->write("<entry><author><name>$name</name><email>$email</email>" .
-                   "</author>$title$date" .
+                   "</author>$title$updated" .
                    qq{<content\ntype="xhtml">} .
                    qq{<div\nxmlns="http://www.w3.org/1999/xhtml">});
         $fh->write($content);