]> Sergey Matveev's repositories - public-inbox.git/commitdiff
feed: move timestamp parsing to view
authorEric Wong <e@80x24.org>
Thu, 20 Aug 2015 02:30:26 +0000 (02:30 +0000)
committerEric Wong <e@80x24.org>
Thu, 20 Aug 2015 02:31:32 +0000 (02:31 +0000)
We don't need share duplicate logic across both files.

lib/PublicInbox/Feed.pm
lib/PublicInbox/View.pm

index 253eed2aa6f43988d2185a1b93e2e9b7b98e6127..0b7ef7f84290633efdaf28b5ce231e0e8258cebd 100644 (file)
@@ -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;
        });
index b3545a4a9c3496220fe47d38aee20fa3e8c5cb9b..4a8e54aa566c762f9098daf1c1f6bb2b0a42e5d5 100644 (file)
@@ -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<b\nid=\"$id\">$subj</b>\n$pfx";
-       $rv .= "- by $from @ $ts - ";
+       $rv .= "- by $from @ $ts UTC - ";
        $rv .= "<a\nid=\"s$midx\"\nhref=\"#s$next\">next</a>";
        if ($prev >= 0) {
                $rv .= "/<a\nhref=\"#s$prev\">prev</a>";
@@ -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;