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-ASN: 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 414831F9FE for ; Sat, 12 Jun 2021 00:10:46 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 4/5] lei import: use url_folder_cache for completion Date: Sat, 12 Jun 2021 00:10:44 +0000 Message-Id: <20210612001045.22344-5-e@80x24.org> In-Reply-To: <20210612001045.22344-1-e@80x24.org> References: <20210612001045.22344-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: And fix "lei index" completion while we're at it. --- lib/PublicInbox/LeiImport.pm | 11 ++++++++--- lib/PublicInbox/LeiIndex.pm | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/PublicInbox/LeiImport.pm b/lib/PublicInbox/LeiImport.pm index 08794f71..7580e37e 100644 --- a/lib/PublicInbox/LeiImport.pm +++ b/lib/PublicInbox/LeiImport.pm @@ -118,10 +118,15 @@ sub lei_import { # the main "lei import" method sub _complete_import { my ($lei, @argv) = @_; - my $sto = $lei->_lei_store or return; - my $lms = $sto->search->lms or return; my $match_cb = $lei->complete_url_prepare(\@argv); - map { $match_cb->($_) } $lms->folders; + my @m = map { $match_cb->($_) } $lei->url_folder_cache->keys; + my %f = map { $_ => 1 } @m; + my $sto = $lei->_lei_store; + if (my $lms = $sto ? $sto->search->lms : undef) { + @m = map { $match_cb->($_) } $lms->folders; + @f{@m} = @m; + } + keys %f; } no warnings 'once'; diff --git a/lib/PublicInbox/LeiIndex.pm b/lib/PublicInbox/LeiIndex.pm index 4be0c649..5b545998 100644 --- a/lib/PublicInbox/LeiIndex.pm +++ b/lib/PublicInbox/LeiIndex.pm @@ -39,7 +39,7 @@ for my $m (qw(pmdir_cb input_net_cb)) { *$m = PublicInbox::LeiImport->can($m); } -*_complete_import = \&PublicInbox::LeiImport::_complete_import; +*_complete_index = \&PublicInbox::LeiImport::_complete_import; *ipc_atfork_child = \&PublicInbox::LeiInput::input_only_atfork_child; *net_merge_all_done = \&PublicInbox::LeiInput::input_only_net_merge_all_done;