X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-learn;h=93aece2e66b6c0d0fecf1d718070e5e213099f7a;hb=a65ebdc3a1f064bab0cddf64b34caad49f1c4c9c;hp=79f3ead5c722cda3d17cea9f4fc8ea185fa39530;hpb=d1525c3b35e9aa1bb14143996a7fa2b6e34cba3e;p=public-inbox.git diff --git a/script/public-inbox-learn b/script/public-inbox-learn index 79f3ead5..93aece2e 100644 --- a/script/public-inbox-learn +++ b/script/public-inbox-learn @@ -39,8 +39,8 @@ my $mime = PublicInbox::MIME->new(eval { $data }); -sub remove_or_add ($$$) { - my ($ibx, $train, $addr) = @_; +sub remove_or_add ($$$$) { + my ($ibx, $train, $mime, $addr) = @_; # We do not touch GIT_COMMITTER_* env here so we can track # who trained the message. @@ -93,11 +93,12 @@ if ($train eq 'spam') { while (my ($addr, $ibx) = each %dests) { next unless ref($ibx); # $ibx may be 0 next if $seen{"$ibx"}++; - remove_or_add($ibx, $train, $addr); + remove_or_add($ibx, $train, $mime, $addr); } - my $ibx = PublicInbox::MDA->inbox_for_list_id($pi_config, $mime); - if ($ibx && !$seen{"$ibx"}) { - remove_or_add($ibx, $train, $ibx->{-primary_address}); + my $dests = PublicInbox::MDA->inboxes_for_list_id($pi_config, $mime); + for my $ibx (@$dests) { + next if !$seen{"$ibx"}++; + remove_or_add($ibx, $train, $mime, $ibx->{-primary_address}); } }