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 4B07B1F4B9 for ; Wed, 15 May 2019 06:33:55 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/6] nntp: use Inbox->over directly Date: Wed, 15 May 2019 06:33:50 +0000 Message-Id: <20190515063354.52259-3-e@80x24.org> In-Reply-To: <20190515063354.52259-1-e@80x24.org> References: <20190515063354.52259-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: None of the NNTP code actually relies on Xapian, anymore. --- lib/PublicInbox/NNTP.pm | 40 +++++++++++++++++++-------------------- lib/PublicInbox/Search.pm | 11 ----------- 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 5c5df7b..8cb6c56 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -326,27 +326,27 @@ sub cmd_newnews ($$$$;$$) { my ($keep, $skip) = split('!', $newsgroups, 2); ngpat2re($keep); ngpat2re($skip); - my @srch; + my @over; foreach my $ng (@{$self->{nntpd}->{grouplist}}) { $ng->{newsgroup} =~ $keep or next; $ng->{newsgroup} =~ $skip and next; - my $srch = $ng->search or next; - push @srch, $srch; + my $over = $ng->over or next; + push @over, $over; }; - return '.' unless @srch; + return '.' unless @over; my $prev = 0; long_response($self, sub { - my $srch = $srch[0]; - my $msgs = $srch->query_ts($ts, $prev); + my $over = $over[0]; + my $msgs = $over->query_ts($ts, $prev); if (scalar @$msgs) { more($self, '<' . join(">\r\n<", map { $_->mid } @$msgs ). '>'); $prev = $msgs->[-1]->{num}; } else { - shift @srch; - if (@srch) { # continue onto next newsgroup + shift @over; + if (@over) { # continue onto next newsgroup $prev = 0; return 1; } else { # break out of the long response. @@ -483,7 +483,7 @@ find_mid: defined $mid or return $err; } found: - my $smsg = $ng->search->{over_ro}->get_art($n) or return $err; + my $smsg = $ng->over->get_art($n) or return $err; my $msg = $ng->msg_by_smsg($smsg) or return $err; my $s = Email::Simple->new($msg); if ($set_headers) { @@ -706,9 +706,9 @@ sub hdr_xref ($$$) { # optimize XHDR Xref [range] for rtin } } -sub search_header_for { - my ($srch, $num, $field) = @_; - my $smsg = $srch->{over_ro}->get_art($num) or return; +sub over_header_for { + my ($over, $num, $field) = @_; + my $smsg = $over->get_art($num) or return; return PublicInbox::SearchMsg::date($smsg) if $field eq 'date'; $smsg->{$field}; } @@ -718,11 +718,11 @@ sub hdr_searchmsg ($$$$) { if (defined $range && $range =~ /\A<(.+)>\z/) { # Message-ID my ($ng, $n) = mid_lookup($self, $1); return r430 unless defined $n; - my $v = search_header_for($ng->search, $n, $field); + my $v = over_header_for($ng->over, $n, $field); hdr_mid_response($self, $xhdr, $ng, $n, $range, $v); } else { # numeric range $range = $self->{article} unless defined $range; - my $srch = $self->{ng}->search; + my $over = $self->{ng}->over; my $mm = $self->{ng}->mm; my $r = get_range($self, $range); return $r unless ref $r; @@ -730,7 +730,7 @@ sub hdr_searchmsg ($$$$) { more($self, $xhdr ? r221 : r225); my $cur = $beg; long_response($self, sub { - my $msgs = $srch->query_xover($cur, $end); + my $msgs = $over->query_xover($cur, $end); my $nr = scalar @$msgs or return; my $tmp = ''; foreach my $s (@$msgs) { @@ -810,11 +810,11 @@ sub cmd_xrover ($;$) { return $r unless ref $r; my ($beg, $end) = @$r; my $mm = $ng->mm; - my $srch = $ng->search; + my $over = $ng->over; more($self, '224 Overview information follows'); long_response($self, sub { - my $h = search_header_for($srch, $beg, 'references'); + my $h = over_header_for($over, $beg, 'references'); more($self, "$beg $h") if defined($h); $beg++ < $end; }); @@ -842,7 +842,7 @@ sub cmd_over ($;$) { if ($range && $range =~ /\A<(.+)>\z/) { my ($ng, $n) = mid_lookup($self, $1); defined $n or return r430; - my $smsg = $ng->search->{over_ro}->get_art($n) or return r430; + my $smsg = $ng->over->get_art($n) or return r430; more($self, '224 Overview information follows (multi-line)'); # Only set article number column if it's the current group @@ -862,10 +862,10 @@ sub cmd_xover ($;$) { return $r unless ref $r; my ($beg, $end) = @$r; more($self, "224 Overview information follows for $beg to $end"); - my $srch = $self->{ng}->search; + my $over = $self->{ng}->over; my $cur = $beg; long_response($self, sub { - my $msgs = $srch->query_xover($cur, $end); + my $msgs = $over->query_xover($cur, $end); my $nr = scalar @$msgs or return; # OVERVIEW.FMT diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 090d998..760c660 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -293,17 +293,6 @@ EOF $self->{query_parser} = $qp; } -# only used for NNTP server -sub query_xover { - my ($self, $beg, $end, $offset) = @_; - $self->{over_ro}->query_xover($beg, $end, $offset); -} - -sub query_ts { - my ($self, $ts, $prev) = @_; - $self->{over_ro}->query_ts($ts, $prev); -} - sub lookup_article { my ($self, $num) = @_; $self->{over_ro}->get_art($num); -- EW