]> git.donarmstrong.com Git - debbugs.git/blobdiff - scripts/process
start mousifying log
[debbugs.git] / scripts / process
index 3eba1fce2ca4b3a5baa33f924035fbfe9df24e18..69a1feccd0102298926c4cc85d163ce832127904 100755 (executable)
@@ -34,6 +34,7 @@ use Debbugs::Control qw(append_action_to_log);
 use Debbugs::Control::Service qw(valid_control control_line);
 use Debbugs::Recipients qw(determine_recipients);
 use Encode qw(encode_utf8 decode);
+use List::AllUtils qw(first uniqnum);
 
 =head1 NAME
 
@@ -312,7 +313,7 @@ if (defined $tryref) {
         $ref= $tryref;
     } else {
         &sendmessage(create_mime_message(
-          [From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+          [From          =>  qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
           To            => $replyto,
           Subject       => "Unknown problem report $gBug#$tryref ($subject)",
           'Message-ID'  => "<handler.x.$nn.unknown\@$gEmailDomain>",
@@ -403,7 +404,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
     }
     if ($ref<0) {
        &sendmessage(create_mime_message(
-          [From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+          [From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
           To            => $replyto,
           Subject       => "Message with no $gBug number ignored by $receivedat ($subject)",
           'Message-ID'  => "<handler.x.$nn.warnignore\@$gEmailDomain>",
@@ -495,7 +496,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
            &htmllog("Reply","sent",$replyto,"You have marked $gBug as forwarded.");
             &sendmessage(create_mime_message(
             [@common_headers,
-             From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+             From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
               To            => "$replyto",
               Subject       => "$gBug#$ref: marked as forwarded ($data->{subject})",
               "Message-ID"  => "<header.$ref.$nn.ackfwdd\@$gEmailDomain>",
@@ -520,7 +521,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
            &htmllog("Reply","sent",$replyto,"You have taken responsibility.");
             &sendmessage(create_mime_message(
             [@common_headers,
-             From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+             From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
               To            => $replyto,
               Subject       => "$gBug#$ref: marked as done ($data->{subject})",
               "Message-ID"  => "<handler.$ref.$nn.ackdone\@$gEmailDomain>",
@@ -546,7 +547,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
                "$gBug acknowledged by developer.");
             &sendmessage(create_mime_message(
             [@common_headers,
-             From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+             From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
               To            => "$data->{originator}",
               Subject       => "$gBug#$ref closed by $markedby ($header{'subject'})",
               "Message-ID"  => "<handler.$ref.$nn.notifdone\@$gEmailDomain>",
@@ -577,7 +578,7 @@ if ($ref<0) { # new bug report
     if ($codeletter eq 'U') { # -submitter
        &sendmessage(create_mime_message(
           [@common_headers,
-          From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+          From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
           To            => $replyto,
           Subject       => "Message with no $gBug number cannot be sent to submitter! ($subject)",
           'Message-ID'  => "<handler.x.$nn.nonumnosub\@$gEmailDomain>",
@@ -617,7 +618,7 @@ if ($ref<0) { # new bug report
                                        );
         &sendmessage(create_mime_message(
                        [@common_headers,
-                       From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+                       From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
                         To            => $replyto,
                         Subject       => "Message with no Package: tag cannot be processed! ($subject)",
                         "Message-ID"  => "<handler.x.$nn.nonumnosub\@$gEmailDomain>",
@@ -989,7 +990,7 @@ if (not exists $header{'x-debbugs-no-ack'} and
                                     );
      &sendmessage(create_mime_message(
                       [@common_headers,
-                       From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+                       From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
                        To            => $replyto,
                        Subject       => $t_h{subject},
                        "Message-ID"  => $t_h{messageid},
@@ -1090,7 +1091,7 @@ if (@control_bits) {
     my $error_text = $errors > 0 ? " (with $errors error" . ($errors > 1 ? "s" : "") . ")" : "";
     my $reply =
        create_mime_message(['X-Loop'      => $gMaintainerEmail,
-                            From          => "$gMaintainerEmail ($gProject $gBug Tracking System)",
+                            From          => qq("$gProject $gBug Tracking System" <$gMaintainerEmail>),
                             To            => $replyto,
                             @maintccs ? (Cc => join(', ',@maintccs)):(),
                             Subject       => "Processed${error_text}: $header{subject}",
@@ -1135,9 +1136,11 @@ sub appendlog {
     my $logfh = IO::File->new(">>$log_location") or
        die "Unable to open $log_location for appending: $!";
     write_log_records(logfh => $logfh,
-                     records => [{type => 'incoming-recv',
-                                  text => $msg,
-                                 }]);
+                     records => [Debbugs::Log::Record->
+                                 new(type => 'incoming-recv',
+                                     text => $msg,
+                                    )
+                                ]);
     close ($logfh) or die "Unable to close $log_location: $!";
 }
 
@@ -1218,15 +1221,21 @@ sub sendmessage {
     # RFC1522 encode the header.
     $msg = encode_headers($msg) unless $no_encode;
 
+    my $log = Debbugs::Log->new($ref);
+    $log->write(text=>stripbccs($msg),
+               type => 'recips',
+               recipients => [map {encode_utf8($_)} @{$recips}]
+              );
     my $hash = get_hashname($ref);
     #save email to the log
     my $logfh = IO::File->new(">>db-h/${hash}/${ref}.log") or
        die "opening db-h/$hash/${ref}.log: $!";
     write_log_records(logfh => $logfh,
-                     records => {text => stripbccs($msg),
-                                 type => 'recips',
-                                 recips => [map {encode_utf8($_)} @{$recips}],
-                                },
+                     records => [Debbugs::Log::Record->
+                     new(text => stripbccs($msg),
+                         type => 'recips',
+                         recipients => [map {encode_utf8($_)} @{$recips}],
+                     )],
                     );
     if (ref($bcc)) {
         shift @$recips if $recips->[0] eq '-t';
@@ -1273,20 +1282,15 @@ sub fill_template{
      my $variables = {config => \%config,
                      defined($ref)?(ref    => $ref):(),
                      defined($data)?(data  => $data):(),
-                     refs => [map {exists $clonebugs{$_}?$clonebugs{$_}:$_} keys %bug_affected],
+                     refs => [sort
+                              uniqnum(defined($ref)?($ref):(),
+                                      map {exists $clonebugs{$_}?$clonebugs{$_}:$_}
+                                      keys %bug_affected)],
                      %{$extra_var},
                     };
-     my $hole_var = {'&bugurl' =>
-                    sub{"$_[0]: ".
-                             $config{cgi_domain}.'/'.
-                                  Debbugs::CGI::bug_links(bug=>$_[0],
-                                                          links_only => 1,
-                                                         );
-                   }
-                   };
      return fill_in_template(template => $template,
                             variables => $variables,
-                            hole_var  => $hole_var,
+                            output_type => 'text',
                            );
 }