]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
mbox: hoist out refill_result_ids
authorEric Wong <e@80x24.org>
Wed, 24 Apr 2024 06:44:46 +0000 (06:44 +0000)
committerEric Wong <e@80x24.org>
Wed, 24 Apr 2024 21:34:46 +0000 (21:34 +0000)
This makes upcoming changes easier to understand.

lib/PublicInbox/Mbox.pm

index 52f88ae3c5e665cc899c82b2c1cd19dc63824766..ac565df9863d5aa204c1a3c825d5d161d2be971d 100644 (file)
@@ -175,6 +175,17 @@ sub mbox_all_ids {
        PublicInbox::MboxGz::mbox_gz($ctx, \&all_ids_cb, 'all');
 }
 
+sub refill_result_ids ($) {
+       my ($ctx) = @_;
+       # refill result set, deprioritize since there's many results
+       my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
+       my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
+       my $size = $mset->size or return;
+       $ctx->{qopts}->{offset} += $size;
+       $ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
+       $ctx->{-low_prio} = 1; # true
+}
+
 sub results_cb {
        my ($ctx) = @_;
        my $over = $ctx->{ibx}->over or return $ctx->gone('over');
@@ -183,13 +194,7 @@ sub results_cb {
                        my $smsg = $over->get_art($num) or next;
                        return $smsg;
                }
-               # refill result set, deprioritize since there's many results
-               my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
-               my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
-               my $size = $mset->size or return;
-               $ctx->{qopts}->{offset} += $size;
-               $ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
-               $ctx->{-low_prio} = 1;
+               refill_result_ids($ctx) or return; # refill ctx->{ids}
        }
 }
 
@@ -202,19 +207,10 @@ sub results_thread_cb {
                        my $smsg = $over->get_art($num) or next;
                        return $smsg;
                }
+               next if $over->expand_thread($ctx); # refills ctx->{xids}
 
-               # refills ctx->{xids}
-               next if $over->expand_thread($ctx);
-
-               # refill result set, deprioritize since there's many results
-               my $srch = $ctx->{ibx}->isrch or return $ctx->gone('search');
-               my $mset = $srch->mset($ctx->{query}, $ctx->{qopts});
-               my $size = $mset->size or return;
-               $ctx->{qopts}->{offset} += $size;
-               $ctx->{ids} = $srch->mset_to_artnums($mset, $ctx->{qopts});
-               $ctx->{-low_prio} = 1;
+               refill_result_ids($ctx) or return; # refill ctx->{ids}
        }
-
 }
 
 sub mbox_all {