X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FInboxWritable.pm;h=17dfbe18500a6dfa00e87f50209baec4126f61c3;hb=23af251dd607c4e75ab1e68063f2c885c48cc035;hp=c2baeba666904ce128435ef36b4e3642cf2f001d;hpb=54e53bfb66c325cc838a44ed3a19042b6dfcdf02;p=public-inbox.git diff --git a/lib/PublicInbox/InboxWritable.pm b/lib/PublicInbox/InboxWritable.pm index c2baeba6..17dfbe18 100644 --- a/lib/PublicInbox/InboxWritable.pm +++ b/lib/PublicInbox/InboxWritable.pm @@ -47,7 +47,7 @@ sub _init_v1 { require PublicInbox::Msgmap; my $sidx = PublicInbox::SearchIdx->new($self, 1); # just create $sidx->begin_txn_lazy; - my $mm = PublicInbox::Msgmap->new($self->{inboxdir}, 1); + my $mm = PublicInbox::Msgmap->new_file($self, 1); if (defined $skip_artnum) { $mm->{dbh}->begin_work; $mm->skip_artnum($skip_artnum); @@ -131,13 +131,9 @@ sub eml_from_path ($) { } } -sub _each_maildir_fn { - my ($fn, $im, $self) = @_; - if ($fn =~ /:2,([A-Za-z]*)\z/) { - my $fl = $1; - return if $fl =~ /[DT]/; # no Drafts or Trash for public - } - my $eml = eml_from_path($fn) or return; +sub _each_maildir_eml { + my ($fn, $kw, $eml, $im, $self) = @_; + return if grep(/\Adraft\z/, @$kw); if ($self && (my $filter = $self->filter($im))) { my $ret = $filter->scrub($eml) or return; return if $ret == REJECT(); @@ -146,6 +142,7 @@ sub _each_maildir_fn { $im->add($eml); } +# XXX does anybody use this? sub import_maildir { my ($self, $dir) = @_; foreach my $sub (qw(cur new tmp)) { @@ -154,8 +151,8 @@ sub import_maildir { my $im = $self->importer(1); my @self = $self->filter($im) ? ($self) : (); require PublicInbox::MdirReader; - PublicInbox::MdirReader::maildir_each_file(\&_each_maildir_fn, - $im, @self); + PublicInbox::MdirReader->new->maildir_each_eml($dir, + \&_each_maildir_eml, $im, @self); $im->done; } @@ -172,7 +169,7 @@ sub _mbox_eml_cb { # MboxReader->mbox* callback sub import_mbox { my ($self, $fh, $variant) = @_; require PublicInbox::MboxReader; - my $cb = PublicInbox::MboxReader->can($variant) or + my $cb = PublicInbox::MboxReader->reads($variant) or die "$variant not supported\n"; my $im = $self->importer(1); $cb->(undef, $fh, \&_mbox_eml_cb, $im, $self->filter);