-package PublicInbox::SearchQuery;
-use strict;
-use warnings;
-use URI::Escape qw(uri_escape);
-use PublicInbox::Hval;
-use PublicInbox::MID qw(MID_ESC);
-
-sub new {
- my ($class, $qp) = @_;
-
- my $r = $qp->{r};
- bless {
- q => $qp->{'q'},
- x => $qp->{x} || '',
- o => (($qp->{o} || '0') =~ /(\d+)/),
- r => (defined $r && $r ne '0'),
- }, $class;
-}
-
-sub qs_html {
- my ($self, %over) = @_;
-
- if (keys %over) {
- my $tmp = bless { %$self }, ref($self);
- foreach my $k (keys %over) {
- $tmp->{$k} = $over{$k};
- }
- $self = $tmp;
- }
-
- my $q = uri_escape($self->{'q'}, MID_ESC);
- $q =~ s/%20/+/g; # improve URL readability
- my $qs = "q=$q";
-
- if (my $o = $self->{o}) { # ignore o == 0
- $qs .= "&o=$o";
- }
- if (my $r = $self->{r}) {
- $qs .= "&r";
- }
- if (my $x = $self->{x}) {
- $qs .= "&x=$x" if ($x eq 't' || $x eq 'A');
+# callback for PublicInbox::WwwAtomStream::getline
+sub adump_i {
+ my ($ctx) = @_;
+ while (my $num = shift @{$ctx->{ids}}) {
+ my $smsg = eval { $ctx->{-inbox}->over->get_art($num) } or next;
+ return $smsg;