yt 0.25.36 → 0.25.37

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03df481de8d8dab964d533b1dd85718556c3a42c
4
- data.tar.gz: aba3bea32baeefa3b394814027c8f687ab6942eb
3
+ metadata.gz: 15a20e76bf7d966fea857e957e7128323463f18a
4
+ data.tar.gz: e586722756127d69a2f1ff48887012b4c8df0355
5
5
  SHA512:
6
- metadata.gz: 2b747dde037c9a2cb7d0ce840a80940a86c99a234da290c3b9d7212b73d1c713a60cee192b8aa517c0f723826787cc5403933637c8e8d5d1cd7e437c89afe332
7
- data.tar.gz: a1765da3785f055e37e64f83c697e3c79a230cbe0e2b08b09b305fc4d8d5859cdc33aaa281d0fddec4a148f06daccfdc2b9e73d116caeaef9731ab6af75e346c
6
+ metadata.gz: b1113ca6fdc0dd8dab6a42e42d5b3a24fb39a6dcb2dcc407ce49e9864a8f63e6dd0988d402dbb4aa312148284c96d8dbf828f4f784d3076fa6ffacbb65397bf0
7
+ data.tar.gz: ff08ea36fd74728c6c98e113f3d20c89b1284b95faf36a75c3867aeb0a7a1d172cbc78f0626ff327c8cdce2bdbf735ba6210b7f251a6a82145992be13e24e9ac
data/CHANGELOG.md CHANGED
@@ -6,6 +6,9 @@ For more information about changelogs, check
6
6
  [Keep a Changelog](http://keepachangelog.com) and
7
7
  [Vandamme](http://tech-angels.github.io/vandamme).
8
8
 
9
+ ## 0.25.37 - 2016-05-16
10
+
11
+ * [FEATURE] Add `VideoGroup#videos` to load all videos under a group of channels, as well as a group of videos.
9
12
 
10
13
  ## 0.25.36 - 2016-05-10
11
14
 
@@ -128,6 +128,26 @@ module Yt
128
128
  params[:filters] = "group==#{id}"
129
129
  end
130
130
  end
131
+
132
+ def all_video_ids
133
+ resource_ids = group_items.map{|item| item.data['resource']['id']}.uniq
134
+ case group_info.data["itemType"]
135
+ when "youtube#video"
136
+ resource_ids
137
+ when "youtube#channel"
138
+ resource_ids.flat_map do |channel_id|
139
+ Yt::Channel.new(id: channel_id, auth: @auth).videos.map(&:id)
140
+ end
141
+ end
142
+ end
143
+
144
+ def videos
145
+ all_video_ids.each_slice(50).flat_map do |video_ids|
146
+ conditions = {id: video_ids.join(',')}
147
+ conditions[:part] = 'snippet,status,statistics,contentDetails'
148
+ Collections::Videos.new(auth: @auth).where(conditions).map(&:itself)
149
+ end
150
+ end
131
151
  end
132
152
  end
133
153
  end
data/lib/yt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yt
2
- VERSION = '0.25.36'
2
+ VERSION = '0.25.37'
3
3
  end
@@ -5,6 +5,19 @@ require 'yt/models/group_item'
5
5
  describe Yt::VideoGroup, :partner do
6
6
  subject(:video_group) { Yt::VideoGroup.new id: id, auth: $content_owner }
7
7
 
8
+ context 'given a channel-group', :partner do
9
+ context 'managed by the authenticated Content Owner' do
10
+ let(:id) { ENV['YT_TEST_PARTNER_CHANNEL_GROUP_ID'] }
11
+
12
+ specify '.videos loads each video of each channel' do
13
+ video = video_group.videos.first
14
+ expect(video.instance_variable_defined? :@snippet).to be true
15
+ expect(video.instance_variable_defined? :@status).to be true
16
+ expect(video.instance_variable_defined? :@statistics_set).to be true
17
+ end
18
+ end
19
+ end
20
+
8
21
  context 'given a video-group', :partner do
9
22
  context 'managed by the authenticated Content Owner' do
10
23
  let(:id) { ENV['YT_TEST_PARTNER_VIDEO_GROUP_ID'] }
@@ -31,6 +44,13 @@ describe Yt::VideoGroup, :partner do
31
44
  expect(item.video.instance_variable_defined? :@statistics_set).to be true
32
45
  end
33
46
 
47
+ specify '.videos loads each video' do
48
+ video = video_group.videos.first
49
+ expect(video.instance_variable_defined? :@snippet).to be true
50
+ expect(video.instance_variable_defined? :@status).to be true
51
+ expect(video.instance_variable_defined? :@statistics_set).to be true
52
+ end
53
+
34
54
  describe 'multiple reports can be retrieved at once' do
35
55
  metrics = {views: Integer, uniques: Integer,
36
56
  estimated_minutes_watched: Integer, comments: Integer, likes: Integer,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.36
4
+ version: 0.25.37
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Baccigalupo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-11 00:00:00.000000000 Z
11
+ date: 2016-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport