about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/NNTP.pm2
-rw-r--r--lib/PublicInbox/Search.pm14
-rw-r--r--t/nntpd.t2
3 files changed, 17 insertions, 1 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 895e5023..fb65ddc0 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -336,7 +336,7 @@ sub cmd_newnews ($$$$;$$) {
         long_response($self, 0, long_response_limit, sub {
                 my ($i) = @_;
                 my $srch = $srch[0];
-                my $res = $srch->query($ts, $opts);
+                my $res = $srch->query_ts($ts, $opts);
                 my $msgs = $res->{msgs};
                 if (my $nr = scalar @$msgs) {
                         more($self, '<' .
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index 802984b0..4dc27472 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -330,6 +330,20 @@ sub query_xover {
         _do_enquire($self, $query, $opts);
 }
 
+sub query_ts {
+        my ($self, $ts, $opts) = @_;
+        my $qp = $self->{qp_ts} ||= eval {
+                my $q = Search::Xapian::QueryParser->new;
+                $q->set_database($self->{skel} || $self->{xdb});
+                $q->add_valuerangeprocessor(
+                        Search::Xapian::NumberValueRangeProcessor->new(TS));
+                $q
+        };
+        my $query = $qp->parse_query($ts, QP_FLAGS);
+        $opts->{enquire} = enquire_skel($self);
+        _do_enquire($self, $query, $opts);
+}
+
 sub lookup_skeleton {
         my ($self, $mid) = @_;
         my $skel = $self->{skel} or return lookup_message($self, $mid);
diff --git a/t/nntpd.t b/t/nntpd.t
index ea0d2939..de781d74 100644
--- a/t/nntpd.t
+++ b/t/nntpd.t
@@ -228,6 +228,8 @@ EOF
         is_deeply($n->xhdr(qw(list-id 1-)), {},
                  'XHDR on invalid header returns empty');
 
+        my $mids = $n->newnews(0, '*');
+        is_deeply($mids, ['<nntp@example.com>'], 'NEWNEWS works');
         {
                 my $t0 = time;
                 my $date = $n->date;