aboutsummaryrefslogtreecommitdiffstats
path: root/lib/WWW/FairViewer/Search.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/WWW/FairViewer/Search.pm')
-rw-r--r--lib/WWW/FairViewer/Search.pm22
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/WWW/FairViewer/Search.pm b/lib/WWW/FairViewer/Search.pm
index 6f4e8d0..69ae560 100644
--- a/lib/WWW/FairViewer/Search.pm
+++ b/lib/WWW/FairViewer/Search.pm
@@ -53,7 +53,6 @@ sub _make_search_url {
region => $self->get_region,
sort_by => $self->get_order,
date => $self->get_date,
- channelId => $self->get_channelId,
pageToken => $self->page_token,
duration => $self->get_videoDuration,
@@ -72,15 +71,28 @@ Search for a list of types (comma-separated).
sub search_for {
my ($self, $type, $keywords, $args) = @_;
+ if (ref($args) ne 'HASH') {
+ $args = {};
+ }
+
$keywords //= [];
- if (ref $keywords ne 'ARRAY') {
+
+ if (ref($keywords) ne 'ARRAY') {
$keywords = [split ' ', $keywords];
}
+ $keywords = $self->escape_string(join(' ', @{$keywords}));
+
+ # Search in a channel's videos
+ if (defined(my $channel_id = $self->get_channelId)) {
+ my $url = $self->_make_feed_url("channels/search/$channel_id", q => $keywords,);
+ return $self->_get_results($url);
+ }
+
my $url = $self->_make_search_url(
type => $type,
- q => $self->escape_string(join(' ', @{$keywords})),
- (ref $args eq 'HASH' ? %{$args} : (part => 'snippet')),
+ q => $keywords,
+ %$args,
);
return $self->_get_results($url);
@@ -104,7 +116,7 @@ sub search_for {
},
{
name => 'all',
- type => 'video,channel,playlist',
+ type => 'all',
}
) {
*{__PACKAGE__ . '::' . "search_$pair->{name}"} = sub {