diff options
author | Eric Wong <e@80x24.org> | 2023-10-11 07:20:51 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-10-11 22:10:47 +0000 |
commit | e9e58f17fdc00b244d0830ff2926a2dfefc4fda2 (patch) | |
tree | 11f55f2604a25b55979b335b5097a7d52523b8dd /lib/PublicInbox/MsgTime.pm | |
parent | a7c337f88a1768fdc7d4d5a06b52d566ddc99c19 (diff) | |
download | public-inbox-e9e58f17fdc00b244d0830ff2926a2dfefc4fda2.tar.gz |
In retrospect, warning about bad times and dates is pointless since there's nothing actionable about it. We'll also drop an unnecessary capture in msg_received_at while we're at it and favor using $eml since as the input variable name to match current usage. The note to install Date::Parse as a fallback remains since it can be helpful in some cases (and is actionable by the user).
Diffstat (limited to 'lib/PublicInbox/MsgTime.pm')
-rw-r--r-- | lib/PublicInbox/MsgTime.pm | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/lib/PublicInbox/MsgTime.pm b/lib/PublicInbox/MsgTime.pm index 5ee087fd..58b0deae 100644 --- a/lib/PublicInbox/MsgTime.pm +++ b/lib/PublicInbox/MsgTime.pm @@ -1,11 +1,11 @@ -# Copyright (C) 2018-2021 all contributors <meta@public-inbox.org> +# Copyright (C) all contributors <meta@public-inbox.org> # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> # Various date/time-related functions package PublicInbox::MsgTime; +use v5.10.1; # unicode_strings in 5.12 may not work... use strict; -use warnings; -use base qw(Exporter); +use parent qw(Exporter); our @EXPORT_OK = qw(msg_timestamp msg_datestamp); use Time::Local qw(timegm); my @MoY = qw(january february march april may june @@ -125,10 +125,7 @@ sub str2date_zone ($) { # but we want to keep "git fsck" happy. # "-1200" is the furthest westermost zone offset, # but git fast-import is liberal so we use "-1400" - if ($zone >= 1400 || $zone <= -1400) { - warn "bogus TZ offset: $zone, ignoring and assuming +0000\n"; - $zone = '+0000'; - } + $zone = '+0000' if $zone >= 1400 || $zone <= -1400; [$ts, $zone]; } @@ -138,30 +135,22 @@ sub time_response ($) { } sub msg_received_at ($) { - my ($hdr) = @_; # PublicInbox::Eml - my @recvd = $hdr->header_raw('Received'); - my ($ts); - foreach my $r (@recvd) { + my ($eml) = @_; + my $ts; + for my $r ($eml->header_raw('Received')) { $r =~ /\s*([0-9]+\s+[a-zA-Z]+\s+[0-9]{2,4}\s+ [0-9]+[^0-9][0-9]+(?:[^0-9][0-9]+) - \s+([\+\-][0-9]+))/sx or next; + \s+(?:[\+\-][0-9]+))/sx or next; $ts = eval { str2date_zone($1) } and return $ts; - my $mid = $hdr->header_raw('Message-ID'); - warn "no date in $mid Received: $r\n"; } undef; } sub msg_date_only ($) { - my ($hdr) = @_; # PublicInbox::Eml - my @date = $hdr->header_raw('Date'); - my ($ts); - foreach my $d (@date) { + my ($eml) = @_; + my $ts; + for my $d ($eml->header_raw('Date')) { $ts = eval { str2date_zone($d) } and return $ts; - if ($@) { - my $mid = $hdr->header_raw('Message-ID'); - warn "bad Date: $d in $mid: $@\n"; - } } undef; } |