diff options
Diffstat (limited to 'lib/WWW/StrawViewer/Videos.pm')
-rw-r--r-- | lib/WWW/StrawViewer/Videos.pm | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/lib/WWW/StrawViewer/Videos.pm b/lib/WWW/StrawViewer/Videos.pm deleted file mode 100644 index 11bf60b..0000000 --- a/lib/WWW/StrawViewer/Videos.pm +++ /dev/null @@ -1,230 +0,0 @@ -package WWW::StrawViewer::Videos; - -use utf8; -use 5.014; -use warnings; - -=head1 NAME - -WWW::StrawViewer::Videos - videos handler. - -=head1 SYNOPSIS - - use WWW::StrawViewer; - my $obj = WWW::StrawViewer->new(%opts); - my $info = $obj->video_details($videoID); - -=head1 SUBROUTINES/METHODS - -=cut - -sub _make_videos_url { - my ($self, %opts) = @_; - return $self->_make_feed_url('videos', %opts); -} - -{ - no strict 'refs'; - foreach my $part ( - qw( - id - snippet - contentDetails - fileDetails - player - liveStreamingDetails - processingDetails - recordingDetails - statistics - status - suggestions - topicDetails - ) - ) { - *{__PACKAGE__ . '::' . 'video_' . $part} = sub { - my ($self, $id) = @_; - return $self->_get_results($self->_make_videos_url(id => $id, part => $part)); - }; - } -} - -=head2 videos_from_category($category_id) - -Get videos from a category ID. - -=cut - -sub videos_from_category { - my ($self, $cat_id) = @_; - $self->_get_results( - $self->_make_videos_url( - chart => $self->get_chart, - videoCategoryId => $cat_id, - ) - ); -} - -=head2 trending_videos_from_category($category_id) - -Get popular videos from a category ID. - -=cut - -sub trending_videos_from_category { - my ($self, $cat_id) = @_; - - my $results = do { - local $self->{publishedAfter} = do { - state $yv_utils = WWW::StrawViewer::Utils->new; - $yv_utils->period_to_date(1, 'w'); - } if !defined($self->get_publishedAfter); - local $self->{videoCategoryId} = $cat_id; - local $self->{regionCode} = "US" if !defined($self->get_regionCode); - $self->search_videos(""); - }; - - return $results; -} - -=head2 popular_videos($channel_id) - -Get the most popular videos for a given channel ID. - -=cut - -sub popular_videos { - my ($self, $id) = @_; - - my $results = do { - local $self->{channelId} = $id; - local $self->{order} = 'viewCount'; - $self->search_videos(""); - }; - - return $results; -} - -=head2 my_likes() - -Get the videos liked by the authenticated user. - -=cut - -sub my_likes { - my ($self) = @_; - $self->get_access_token() // return; - $self->_get_results($self->_make_videos_url(myRating => 'like', pageToken => $self->page_token)); -} - -=head2 my_dislikes() - -Get the videos disliked by the authenticated user. - -=cut - -sub my_dislikes { - my ($self) = @_; - $self->get_access_token() // return; - $self->_get_results($self->_make_videos_url(myRating => 'dislike', pageToken => $self->page_token)); -} - -=head2 send_rating_to_video($videoID, $rating) - -Send rating to a video. $rating can be either 'like' or 'dislike'. - -=cut - -sub send_rating_to_video { - my ($self, $video_id, $rating) = @_; - - if ($rating eq 'none' or $rating eq 'like' or $rating eq 'dislike') { - my $url = $self->_simple_feeds_url('videos/rate', id => $video_id, rating => $rating); - return defined($self->lwp_post($url, $self->_auth_lwp_header())); - } - - return; -} - -=head2 like_video($videoID) - -Like a video. Returns true on success. - -=cut - -sub like_video { - my ($self, $video_id) = @_; - $self->send_rating_to_video($video_id, 'like'); -} - -=head2 dislike_video($videoID) - -Dislike a video. Returns true on success. - -=cut - -sub dislike_video { - my ($self, $video_id) = @_; - $self->send_rating_to_video($video_id, 'dislike'); -} - -=head2 videos_details($id, $part) - -Get info about a videoID, such as: channelId, title, description, -tags, and categoryId. - -Available values for I<part> are: I<id>, I<snippet>, I<contentDetails> -I<player>, I<statistics>, I<status> and I<topicDetails>. - -C<$part> string can contain more values, comma-separated. - -Example: - - part => 'snippet,contentDetails,statistics' - -When C<$part> is C<undef>, it defaults to I<snippet>. - -=cut - -sub video_details { - my ($self, $id, $fields) = @_; - $fields //= $self->basic_video_info_fields; - $self->_get_results($self->_make_feed_url("videos/$id", fields => $fields)); -} - -=head2 Return details - -Each function returns a HASH ref, with a key called 'results', and another key, called 'url'. - -The 'url' key contains a string, which is the URL for the retrieved content. - -The 'results' key contains another HASH ref with the keys 'etag', 'items' and 'kind'. -From the 'results' key, only the 'items' are relevant to us. This key contains an ARRAY ref, -with a HASH ref for each result. An example of the item array's content are shown below. - -=cut - -=head1 AUTHOR - -Trizen, C<< <echo dHJpemVuQHByb3Rvbm1haWwuY29tCg== | base64 -d> >> - - -=head1 SUPPORT - -You can find documentation for this module with the perldoc command. - - perldoc WWW::StrawViewer::Videos - - -=head1 LICENSE AND COPYRIGHT - -Copyright 2013-2015 Trizen. - -This program is free software; you can redistribute it and/or modify it -under the terms of either: the GNU General Public License as published -by the Free Software Foundation; or the Artistic License. - -See L<http://dev.perl.org/licenses/> for more information. - -=cut - -1; # End of WWW::StrawViewer::Videos |