]> Sergey Matveev's repositories - public-inbox.git/commitdiff
PublicInbox::Feed owns `feedmax' default value
authorEric Wong <e@80x24.org>
Fri, 11 Dec 2020 20:49:58 +0000 (20:49 +0000)
committerEric Wong <e@80x24.org>
Mon, 14 Dec 2020 20:25:23 +0000 (20:25 +0000)
There's no need to have extra code in the Inbox package for this
or to waste dozens of bytes for every Inbox object which uses
the default value.

This makes our code more flexible w.r.t Inbox-like ExtSearch
objects and fixes uninitialized value warnings with ->ALL.

lib/PublicInbox/Feed.pm
lib/PublicInbox/Inbox.pm
t/config.t

index 4dd584d3478a2e2371be75de2375ac50793fc489..f570a25da560ded94d9a247e1b9fb23208a01865 100644 (file)
@@ -80,7 +80,7 @@ sub _no_thread () {
 sub recent_msgs {
        my ($ctx) = @_;
        my $ibx = $ctx->{ibx};
-       my $max = $ibx->{feedmax};
+       my $max = $ibx->{feedmax} // 25;
        return PublicInbox::View::paginate_recent($ctx, $max) if $ibx->over;
 
        # only for rare v1 inboxes which aren't indexed at all
index 586bd56110e5e548f3ea9c01bdf52e45915b5397..4e3c23f35a4820e96d87cb8f4b2c0f048ef9f5b0 100644 (file)
@@ -74,16 +74,6 @@ sub _cleanup_later ($) {
        $CLEANUP->{"$self"} = $self;
 }
 
-sub _set_uint ($$$) {
-       my ($opts, $field, $default) = @_;
-       my $val = $opts->{$field};
-       if (defined $val) {
-               $val = $val->[-1] if ref($val) eq 'ARRAY';
-               $val = undef if $val !~ /\A[0-9]+\z/;
-       }
-       $opts->{$field} = $val || $default;
-}
-
 sub _set_limiter ($$$) {
        my ($self, $pi_cfg, $pfx) = @_;
        my $lkey = "-${pfx}_limiter";
@@ -112,7 +102,12 @@ sub new {
        $opts->{domain} = ($p =~ /\@(\S+)\z/) ? $1 : 'localhost';
        my $pi_cfg = delete $opts->{-pi_cfg};
        _set_limiter($opts, $pi_cfg, 'httpbackend');
-       _set_uint($opts, 'feedmax', 25);
+       my $fmax = $opts->{feedmax};
+       if (defined($fmax) && $fmax =~ /\A[0-9]+\z/) {
+               $opts->{feedmax} += 0;
+       } else {
+               delete $opts->{feedmax};
+       }
        $opts->{nntpserver} ||= $pi_cfg->{'publicinbox.nntpserver'};
        my $dir = $opts->{inboxdir};
        if (defined $dir && -f "$dir/inbox.lock") {
index ee51c6cc2628d8c663c47a90ab8a3cd12d6d7dc5..99a7fef45793ccc2b5e5e8d10c6eddf2922bb42e 100644 (file)
@@ -41,7 +41,6 @@ my ($tmpdir, $for_destroy) = tmpdir();
                'url' => [ 'http://example.com/meta' ],
                -primary_address => 'meta@public-inbox.org',
                'name' => 'meta',
-               feedmax => 25,
                -httpbackend_limiter => undef,
                nntpserver => undef,
        }, "lookup matches expected output");
@@ -58,7 +57,6 @@ my ($tmpdir, $for_destroy) = tmpdir();
                'inboxdir' => '/home/pi/test-main.git',
                'domain' => 'public-inbox.org',
                'name' => 'test',
-               feedmax => 25,
                'url' => [ 'http://example.com/test' ],
                -httpbackend_limiter => undef,
                nntpserver => undef,