+ for my $f (@$folders) {
+ my $fid = $lms->fid_for($f);
+ push @{$lei->{lcat_todo}}, { fid => $fid, %range };
+ }
+}
+
+sub lcat_imap_uri ($$) {
+ my ($lei, $uri) = @_;
+ # cf. LeiXSearch->lcat_dump
+ my $lms = $lei->{-lms_rw} //= $lei->lms // return;
+ if (defined $uri->uid) {
+ push @{$lei->{lcat_todo}}, $lms->imap_oidhex($lei, $uri);
+ } elsif (defined(my $fid = $lms->fid_for($$uri))) {
+ push @{$lei->{lcat_todo}}, { fid => $fid };
+ } else {
+ lcat_folder($lei, $$uri);
+ }
+}
+
+sub lcat_nntp_uri ($$) {
+ my ($lei, $uri) = @_;
+ my $mid = $uri->message; # already unescaped by URI::news
+ return "mid:$mid" if defined($mid);
+ my $lms = $lei->{-lms_rw} //= $lei->lms // return;
+ my ($ng, $beg, $end) = $uri->group;
+ $uri->group($ng);
+ lcat_folder($lei, $$uri, $beg, $end);
+ '""';