From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id E47401F5B7 for ; Sat, 1 Aug 2020 08:12:27 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/4] inboxwritable: rename mime_from_path to eml_from_path Date: Sat, 1 Aug 2020 08:12:25 +0000 Message-Id: <20200801081227.21412-3-e@yhbt.net> In-Reply-To: <20200801081227.21412-1-e@yhbt.net> References: <20200801081227.21412-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This is more accurate given we use PublicInbox::Eml instead of Email::MIME/PublicInbox::MIME, nowadays. --- lib/PublicInbox/InboxWritable.pm | 9 +++++---- lib/PublicInbox/WatchMaildir.pm | 7 +++---- script/public-inbox-edit | 9 ++++----- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/PublicInbox/InboxWritable.pm b/lib/PublicInbox/InboxWritable.pm index e8ecd3fba..7fb5a150c 100644 --- a/lib/PublicInbox/InboxWritable.pm +++ b/lib/PublicInbox/InboxWritable.pm @@ -4,11 +4,12 @@ # Extends read-only Inbox for writing package PublicInbox::InboxWritable; use strict; -use warnings; -use base qw(PublicInbox::Inbox); +use v5.10.1; +use parent qw(PublicInbox::Inbox Exporter); use PublicInbox::Import; use PublicInbox::Filter::Base qw(REJECT); use Errno qw(ENOENT); +our @EXPORT_OK = qw(eml_from_path); use constant { PERM_UMASK => 0, @@ -133,7 +134,7 @@ sub is_maildir_path ($) { (is_maildir_basename($p[-1]) && -f $path) ? 1 : 0; } -sub mime_from_path ($) { +sub eml_from_path ($) { my ($path) = @_; if (open my $fh, '<', $path) { my $str = do { local $/; <$fh> } or return; @@ -155,7 +156,7 @@ sub import_maildir { opendir my $dh, "$dir/$sub" or die "opendir $dir/$sub: $!\n"; while (defined(my $fn = readdir($dh))) { next unless is_maildir_basename($fn); - my $mime = mime_from_path("$dir/$fn") or next; + my $mime = eml_from_path("$dir/$fn") or next; if (my $filter = $self->filter($im)) { my $ret = $filter->scrub($mime) or return; diff --git a/lib/PublicInbox/WatchMaildir.pm b/lib/PublicInbox/WatchMaildir.pm index fad708d8f..814b455b2 100644 --- a/lib/PublicInbox/WatchMaildir.pm +++ b/lib/PublicInbox/WatchMaildir.pm @@ -7,7 +7,7 @@ package PublicInbox::WatchMaildir; use strict; use warnings; use PublicInbox::Eml; -use PublicInbox::InboxWritable; +use PublicInbox::InboxWritable qw(eml_from_path); use PublicInbox::Filter::Base qw(REJECT); use PublicInbox::Spamcheck; use PublicInbox::Sigfd; @@ -15,7 +15,6 @@ use PublicInbox::DS qw(now); use PublicInbox::MID qw(mids); use PublicInbox::ContentHash qw(content_hash); use POSIX qw(_exit); -*mime_from_path = \&PublicInbox::InboxWritable::mime_from_path; sub compile_watchheaders ($) { my ($ibx) = @_; @@ -154,7 +153,7 @@ sub _remove_spam { my ($self, $path) = @_; # path must be marked as (S)een $path =~ /:2,[A-R]*S[T-Za-z]*\z/ or return; - my $eml = mime_from_path($path) or return; + my $eml = eml_from_path($path) or return; $self->{config}->each_inbox(\&remove_eml_i, [ $self, $eml, $path ]); } @@ -207,7 +206,7 @@ sub _try_path { return _remove_spam($self, $path); } foreach my $ibx (@$inboxes) { - my $eml = mime_from_path($path) or next; + my $eml = eml_from_path($path) or next; import_eml($self, $ibx, $eml); } } diff --git a/script/public-inbox-edit b/script/public-inbox-edit index d8e511b2e..2d3c4af4d 100755 --- a/script/public-inbox-edit +++ b/script/public-inbox-edit @@ -13,7 +13,7 @@ use PublicInbox::ContentHash qw(content_hash); use PublicInbox::MID qw(mid_clean mids); PublicInbox::Admin::check_require('-index'); use PublicInbox::Eml; -use PublicInbox::InboxWritable; +use PublicInbox::InboxWritable qw(eml_from_path); use PublicInbox::Import; my $usage = "$0 -m MESSAGE_ID [--all] [INBOX_DIRS]"; @@ -92,11 +92,10 @@ Multiple messages with different content found matching warn "Will edit all of them\n"; } } else { - my $mime = PublicInbox::InboxWritable::mime_from_path($file) or - die "open($file) failed: $!"; - my $mids = mids($mime->header_obj); + my $eml = eml_from_path($file) or die "open($file) failed: $!"; + my $mids = mids($eml->header_obj); find_mid($found, $_, \@ibxs) for (@$mids); # populates $found - my $chash = content_hash($mime); + my $chash = content_hash($eml); my $to_edit = $found->{$chash}; unless ($to_edit) { my $nr = scalar(keys %$found);