sub lookup_ei {
my ($self, $name) = @_;
- $self->{-ei_by_name}->{$name} //= _fill_ei($self, "eindex.$name");
+ $self->{-ei_by_name}->{$name} //= _fill_ei($self, "extindex.$name");
}
+# special case for [extindex "all"]
+sub ALL { lookup_ei($_[0], 'all') }
+
sub each_inbox {
my ($self, $cb, @arg) = @_;
# may auto-vivify if config file is non-existent:
}
}
if (my $ng = $ibx->{newsgroup}) {
- $self->{-by_newsgroup}->{$ng} = $ibx;
+ # PublicInbox::NNTPD does stricter (and more expensive checks),
+ # keep this lean for startup speed
+ $self->{-by_newsgroup}->{$ng} = $ibx unless ref($ng);
}
$self->{-by_name}->{$name} = $ibx;
if ($ibx->{obfuscate}) {
}
}
+sub json {
+ state $json;
+ $json //= do {
+ for my $mod (qw(Cpanel::JSON::XS JSON::MaybeXS JSON JSON::PP)) {
+ eval "require $mod" or next;
+ # ->ascii encodes non-ASCII to "\uXXXX"
+ $json = $mod->new->ascii(1) and last;
+ }
+ $json;
+ };
+}
+
1;