]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LeiTag.pm
lei rm|tag: drop redundant mbox+net callbacks
[public-inbox.git] / lib / PublicInbox / LeiTag.pm
index 9bbf0d79c391a7963f029117781334a7ae37bed5..d64a9f86e05ac69cc440874a39c88b1bd88465e7 100644 (file)
@@ -19,23 +19,12 @@ sub input_eml_cb { # used by PublicInbox::LeiInput::input_fh
        }
 }
 
-sub input_mbox_cb {
-       my ($eml, $self) = @_;
-       $eml->header_set($_) for (qw(X-Status Status));
-       input_eml_cb($self, $eml);
-}
-
 sub pmdir_cb { # called via wq_io_do from LeiPmdir->each_mdir_fn
        my ($self, $f) = @_;
        my $eml = eml_from_path($f) or return;
        input_eml_cb($self, $eml);
 }
 
-sub input_net_cb { # imap_each, nntp_each cb
-       my ($url, $uid, $kw, $eml, $self) = @_;
-       input_eml_cb($self, $eml);
-}
-
 sub lei_tag { # the "lei tag" method
        my ($lei, @argv) = @_;
        my $sto = $lei->_lei_store(1);
@@ -49,7 +38,7 @@ sub lei_tag { # the "lei tag" method
        grep(defined, @$vmd_mod{qw(+kw +L -L -kw)}) or
                return $lei->fail('no keywords or labels specified');
        my $ops = {};
-       $lei->{auth}->op_merge($ops, $self) if $lei->{auth};
+       $lei->{auth}->op_merge($ops, $self, $lei) if $lei->{auth};
        (my $op_c, $ops) = $lei->workers_start($self, 1, $ops);
        $lei->{wq1} = $self;
        $lei->{-err_type} = 'non-fatal';
@@ -74,7 +63,7 @@ sub ipc_atfork_child {
 # Workaround bash word-splitting s to ['kw', ':', 'keyword' ...]
 # Maybe there's a better way to go about this in
 # contrib/completion/lei-completion.bash
-sub _complete_mark_common ($) {
+sub _complete_tag_common ($) {
        my ($argv) = @_;
        # Workaround bash word-splitting URLs to ['https', ':', '//' ...]
        # Maybe there's a better way to go about this in
@@ -104,16 +93,18 @@ sub _complete_mark_common ($) {
 # FIXME: same problems as _complete_forget_external and similar
 sub _complete_tag {
        my ($self, @argv) = @_;
+       require PublicInbox::LeiImport;
+       my @in = PublicInbox::LeiImport::_complete_import(@_);
        my @L = eval { $self->_lei_store->search->all_terms('L') };
-       my @all = ((map { ("+kw:$_", "-kw:$_") } @PublicInbox::LeiInput::KW),
+       my @kwL = ((map { ("+kw:$_", "-kw:$_") } @PublicInbox::LeiInput::KW),
                (map { ("+L:$_", "-L:$_") } @L));
-       return @all if !@argv;
-       my ($cur, $re) = _complete_mark_common(\@argv);
-       map {
+       my ($cur, $re) = _complete_tag_common(\@argv);
+       my @m = map {
                # only return the part specified on the CLI
                # don't duplicate if already 100% completed
                /\A$re(\Q$cur\E.*)/ ? ($cur eq $1 ? () : $1) : ();
-       } grep(/$re\Q$cur/, @all);
+       } grep(/$re\Q$cur/, @kwL);
+       (@in, (@m ? @m : @kwL));
 }
 
 no warnings 'once'; # the following works even when LeiAuth is lazy-loaded