lib/PublicInbox/Feed.pm | 5 +----
lib/PublicInbox/View.pm | 17 ++++++++++++-----
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index 253eed2aa6f43988d2185a1b93e2e9b7b98e6127..0b7ef7f84290633efdaf28b5ce231e0e8258cebd 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 @@ unless (defined $state) {
$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 b3545a4a9c3496220fe47d38aee20fa3e8c5cb9b..4a8e54aa566c762f9098daf1c1f6bb2b0a42e5d5 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -97,11 +97,14 @@ $subj = "$subj";
}
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 @@ my $str = $git->cat_file("HEAD:$path");
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;