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=-3.3 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, RP_MATCHES_RCVD 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 02F5C1F8B5 for ; Thu, 20 Aug 2015 02:57:24 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 02/11] feed: move timestamp parsing to view Date: Thu, 20 Aug 2015 02:57:14 +0000 Message-Id: <1440039443-27052-2-git-send-email-e@80x24.org> In-Reply-To: <1440039443-27052-1-git-send-email-e@80x24.org> References: <1440039443-27052-1-git-send-email-e@80x24.org> List-Id: We don't need share duplicate logic across both files. --- lib/PublicInbox/Feed.pm | 5 +---- lib/PublicInbox/View.pm | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 253eed2..0b7ef7f 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -5,7 +5,7 @@ use strict; use warnings; use Email::Address; use Email::MIME; -use Date::Parse qw(strptime str2time); +use Date::Parse qw(strptime); use PublicInbox::Hval; use PublicInbox::GitCatFile; use PublicInbox::View; @@ -70,9 +70,6 @@ sub generate_html_index { $state = [ $ctx->{srch}, {}, $commit, 0 ]; } my $mime = do_cat_mail($git, $_[0]) or return 0; - my $t = eval { str2time($mime->header('Date')) }; - defined($t) or $t = 0; - $mime->header_set('X-PI-TS', $t); $html .= PublicInbox::View->index_entry($mime, 0, $state); 1; }); diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index b3545a4..4a8e54a 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -97,11 +97,14 @@ sub index_entry { } my $ts = $mime->header('X-PI-TS'); - my $fmt = '%Y-%m-%d %H:%M UTC'; + unless (defined $ts) { + $ts = msg_timestamp($mime); + } + my $fmt = '%Y-%m-%d %H:%M'; $ts = POSIX::strftime($fmt, gmtime($ts)); $rv .= "$pfx$subj\n$pfx"; - $rv .= "- by $from @ $ts - "; + $rv .= "- by $from @ $ts UTC - "; $rv .= "next"; if ($prev >= 0) { $rv .= "/prev"; @@ -583,13 +586,17 @@ sub load_results { Email::MIME->new($str); }; unless ($@) { - my $t = eval { str2time($mime->header('Date')) }; - defined($t) or $t = 0; - $mime->header_set('X-PI-TS', $t); + $mime->header_set('X-PI-TS', msg_timestamp($mime)); push @msgs, $mime; } } \@msgs; } +sub msg_timestamp { + my ($mime) = @_; + my $ts = eval { str2time($mime->header('Date')) }; + defined($ts) ? $ts : 0; +} + 1; -- EW