]> diplodocus.org Git - minc/blobdiff - summarize-mime
quick hack to update a db mapping message-id to message file names
[minc] / summarize-mime
index aface151b2737d89c89ab2886860049b412464af..0a51cc6f8aec56bf4827033c1d606194d30da686 100755 (executable)
@@ -19,9 +19,10 @@ use strict;
 use warnings;
 use v5.14;
 
+use DateTime::Format::Mail;
 use Email::MIME;
 
-my @fields = ('From', 'To', 'Date', 'Subject');
+my @fields = ('From', 'To', 'Subject');
 
 sub say_header {
     my $message = shift;
@@ -31,6 +32,26 @@ sub say_header {
     }
 }
 
+sub say_date {
+    my $message = shift;
+    my $parser = DateTime::Format::Mail->new(loose => 1);
+    my $any_valid = 0;
+    my $last;
+    for my $value ($message->header('date')) {
+        my $dt = eval { $parser->parse_datetime($value) };
+        if ($@) {
+            warn("$@");
+            $last = $value;
+            next;
+        }
+        $dt->set_time_zone('local');
+        say 'Date: ', $parser->format_datetime($dt);
+    }
+    if (!$any_valid && $last) {
+        say "Date: $last";
+    }
+}
+
 MAIN: {
     my $errors = 0;
     for my $fn (@ARGV) {
@@ -46,6 +67,7 @@ MAIN: {
         for my $field (@fields) {
             say_header($parsed, $field);
         }
+        say_date($parsed);
         say $parsed->debug_structure;
     }
     exit($errors);