File tree Expand file tree Collapse file tree 4 files changed +51
-9
lines changed Expand file tree Collapse file tree 4 files changed +51
-9
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ package MetaCPAN::Query::Favorite;
3
3
use MetaCPAN::Moose;
4
4
5
5
use MetaCPAN::ESConfig qw( es_doc_path ) ;
6
- use MetaCPAN::Util qw( hit_total) ;
6
+ use MetaCPAN::Util qw( MAX_RESULT_WINDOW hit_total ) ;
7
7
8
8
with ' MetaCPAN::Query::Role::Common' ;
9
9
@@ -148,6 +148,14 @@ sub recent {
148
148
$page //= 1;
149
149
$size //= 100;
150
150
151
+ if ( $page * $size >= MAX_RESULT_WINDOW ) {
152
+ return +{
153
+ favorites => [],
154
+ took => 0,
155
+ total => 0,
156
+ };
157
+ }
158
+
151
159
my $favs = $self -> es-> search(
152
160
es_doc_path(' favorite' ),
153
161
body => {
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ use MetaCPAN::Moose;
4
4
5
5
use MetaCPAN::ESConfig qw( es_doc_path ) ;
6
6
use MetaCPAN::Util
7
- qw( hit_total single_valued_arrayref_to_scalar true false ) ;
7
+ qw( MAX_RESULT_WINDOW hit_total single_valued_arrayref_to_scalar true false ) ;
8
8
9
9
with ' MetaCPAN::Query::Role::Common' ;
10
10
@@ -399,6 +399,14 @@ sub by_author {
399
399
$size //= 1000;
400
400
$page //= 1;
401
401
402
+ if ( $page * $size >= MAX_RESULT_WINDOW ) {
403
+ return {
404
+ releases => [],
405
+ took => 0,
406
+ total => 0,
407
+ };
408
+ }
409
+
402
410
my $body = {
403
411
query => {
404
412
bool => {
@@ -491,6 +499,14 @@ sub all_by_author {
491
499
$size //= 100;
492
500
$page //= 1;
493
501
502
+ if ( $page * $size >= MAX_RESULT_WINDOW ) {
503
+ return {
504
+ releases => [],
505
+ took => 0,
506
+ total => 0,
507
+ };
508
+ }
509
+
494
510
my $body = {
495
511
query => { term => { author => uc ($author ) } },
496
512
sort => [ { date => ' desc' } ],
@@ -713,6 +729,14 @@ sub _get_depended_releases {
713
729
$page //= 1;
714
730
$page_size //= 50;
715
731
732
+ if ( $page * $page_size >= MAX_RESULT_WINDOW ) {
733
+ return +{
734
+ data => [],
735
+ took => 0,
736
+ total => 0,
737
+ };
738
+ }
739
+
716
740
$sort = _fix_sort_value($sort );
717
741
718
742
my $dependency_filter = {
@@ -773,17 +797,15 @@ sub recent {
773
797
$page_size //= 10000;
774
798
$type //= ' ' ;
775
799
776
- my $query ;
777
- my $from = ( $page - 1 ) * $page_size ;
778
-
779
- if ( $from + $page_size > 10000 ) {
780
- return {
800
+ if ( $page * $page_size >= MAX_RESULT_WINDOW ) {
801
+ return +{
781
802
releases => [],
782
- total => 0,
783
803
took => 0,
804
+ total => 0,
784
805
};
785
806
}
786
807
808
+ my $query ;
787
809
if ( $type eq ' n' ) {
788
810
$query = {
789
811
constant_score => {
Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ use List::Util qw( min uniq );
8
8
use Log::Contextual qw( :log :dlog ) ;
9
9
use MetaCPAN::ESConfig qw( es_doc_path ) ;
10
10
use MetaCPAN::Types::TypeTiny qw( Object Str ) ;
11
- use MetaCPAN::Util qw( hit_total true false ) ;
11
+ use MetaCPAN::Util qw( MAX_RESULT_WINDOW hit_total true false ) ;
12
12
use MooseX::StrictConstructor;
13
13
14
14
with ' MetaCPAN::Query::Role::Common' ;
@@ -60,6 +60,15 @@ sub search_web {
60
60
$page_size //= 20;
61
61
$page //= 1;
62
62
63
+ if ( $page * $page_size >= MAX_RESULT_WINDOW ) {
64
+ return {
65
+ results => [],
66
+ total => 0,
67
+ tool => 0,
68
+ colapsed => $collapsed ? true : false,
69
+ };
70
+ }
71
+
63
72
$search_term =~ s { ([+=><!&|\(\)\{\} [\]\^ "~*?\\ /])} { \\ $1 } g ;
64
73
65
74
# munge the search_term
Original file line number Diff line number Diff line change @@ -37,9 +37,12 @@ use Sub::Exporter -setup => {
37
37
true
38
38
false
39
39
is_bool
40
+ MAX_RESULT_WINDOW
40
41
) ]
41
42
};
42
43
44
+ use constant MAX_RESULT_WINDOW => 10000;
45
+
43
46
*true = \&Cpanel::JSON::XS::true;
44
47
*false = \&Cpanel::JSON::XS::false;
45
48
*is_bool = \&Cpanel::JSON::XS::is_bool;
You can’t perform that action at this time.
0 commit comments