use constant DT => 2; # Date: YYYYMMDDHHMMSS
use PublicInbox::SearchMsg;
-use PublicInbox::MIME;
-use PublicInbox::MID qw/id_compress/;
use PublicInbox::Over;
my $QP_FLAGS;
our %X = map { $_ => 0 } qw(BoolWeight Database Enquire
# or make indexlevel=medium as default
$QP_FLAGS = FLAG_PHRASE() | FLAG_BOOLEAN() | FLAG_LOVEHATE() |
FLAG_WILDCARD();
- last;
+ return 1;
}
undef;
}
my $self = bless {
inboxdir => $ibx->{inboxdir},
altid => $ibx->{altid},
- version => $ibx->{version} // 1,
+ version => $ibx->version,
}, $class;
my $dir = xdir($self, 1);
$self->{over_ro} = PublicInbox::Over->new("$dir/over.sqlite3");
}
sub retry_reopen {
- my ($self, $cb) = @_;
+ my ($self, $cb, $arg) = @_;
for my $i (1..10) {
if (wantarray) {
my @ret;
- eval { @ret = $cb->() };
+ eval { @ret = $cb->($arg) };
return @ret unless $@;
} else {
my $ret;
- eval { $ret = $cb->() };
+ eval { $ret = $cb->($arg) };
return $ret unless $@;
}
# Exception: The revision being read has been discarded -
sub _do_enquire {
my ($self, $query, $opts) = @_;
- retry_reopen($self, sub { _enquire_once($self, $query, $opts) });
+ retry_reopen($self, \&_enquire_once, [ $self, $query, $opts ]);
}
-sub _enquire_once {
- my ($self, $query, $opts) = @_;
+sub _enquire_once { # retry_reopen callback
+ my ($self, $query, $opts) = @{$_[0]};
my $xdb = xdb($self);
my $enquire = $X{Enquire}->new($xdb);
$enquire->set_query($query);
my $limit = $opts->{limit} || 50;
my $mset = $enquire->get_mset($offset, $limit);
return $mset if $opts->{mset};
- my @msgs = map {
- PublicInbox::SearchMsg->load_doc($_->get_document);
- } $mset->items;
+ my @msgs = map { PublicInbox::SearchMsg::from_mitem($_) } $mset->items;
return \@msgs unless wantarray;
($mset->get_matches_estimated, \@msgs)
$self->{query_parser} = $qp;
}
-sub lookup_article {
- my ($self, $num) = @_;
- $self->{over_ro}->get_art($num);
-}
-
sub help {
my ($self) = @_;
$self->qp; # parse altids