From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: meta@public-inbox.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 517E71F4B3 for ; Sun, 13 Sep 2015 22:35:47 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 1/3] feed: consolidate updated tag generation Date: Sun, 13 Sep 2015 22:35:45 +0000 Message-Id: <20150913223547.5083-1-e@80x24.org> List-Id: We'll be reusing this code further in the next commit. --- lib/PublicInbox/Feed.pm | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 258ef03..5a2f62b 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 . '' . - strftime(DATEFMT, gmtime($ts)) . - ''); + $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; + '' . strftime(DATEFMT, @t) . ''; } # 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 = "$date"; + 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("$name$email" . - "$title$date" . + "$title$updated" . qq{} . qq{}); $fh->write($content); -- EW