diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/WWW/FairViewer.pm | 42 | ||||
-rw-r--r-- | lib/WWW/FairViewer/Utils.pm | 6 |
2 files changed, 23 insertions, 25 deletions
diff --git a/lib/WWW/FairViewer.pm b/lib/WWW/FairViewer.pm index e8040d4..47e87c4 100644 --- a/lib/WWW/FairViewer.pm +++ b/lib/WWW/FairViewer.pm @@ -1001,42 +1001,38 @@ sub post_as_json { sub next_page_with_token { my ($self, $url, $token) = @_; - my $pt_url = ( - $url =~ s{[?&]continuation=\K([^&]+)}{$token} - ? $url - : $self->_append_url_args($url, continuation => $token) - ); - - my $res = $self->_get_results($pt_url); - $res->{url} = $pt_url; + if (not $url =~ s{[?&]continuation=\K([^&]+)}{$token}) { + $url = $self->_append_url_args($url, continuation => $token); + } + + my $res = $self->_get_results($url); + $res->{url} = $url; return $res; } sub next_page { - my ($self, $url) = @_; + my ($self, $url, $token) = @_; - my $pt_url = ( - $url =~ s{[?&]page=\K(\d+)}{$1+1}e - ? $url - : $self->_append_url_args($url, page => 2) - ); + if ($token) { + return $self->next_page_with_token($url, $token); + } + + if (not $url =~ s{[?&]page=\K(\d+)}{$1+1}e) { + $url = $self->_append_url_args($url, page => 2); + } - my $res = $self->_get_results($pt_url); - $res->{url} = $pt_url; + my $res = $self->_get_results($url); + $res->{url} = $url; return $res; } sub previous_page { my ($self, $url) = @_; - my $pt_url = ( - $url =~ s{[?&]page=\K(\d+)}{($1 > 2) ? ($1-1) : 1}e - ? $url - : $url - ); + $url =~ s{[?&]page=\K(\d+)}{($1 > 2) ? ($1-1) : 1}e; - my $res = $self->_get_results($pt_url); - $res->{url} = $pt_url; + my $res = $self->_get_results($url); + $res->{url} = $url; return $res; } diff --git a/lib/WWW/FairViewer/Utils.pm b/lib/WWW/FairViewer/Utils.pm index 4e614f8..5ca1106 100644 --- a/lib/WWW/FairViewer/Utils.pm +++ b/lib/WWW/FairViewer/Utils.pm @@ -224,8 +224,10 @@ sub has_entries { if (ref($result->{results}) eq 'HASH') { - if (exists $result->{results}{comments}) { - return scalar @{$result->{results}{comments}} > 0; + foreach my $type(qw(comments videos playlists)) { + if (exists $result->{results}{$type}) { + return scalar @{$result->{results}{$type}} > 0; + } } my $type = $result->{results}{type}//''; |