brainzz 0.0.18 → 0.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +13 -0
- data/lib/brainzz.rb +4 -0
- data/lib/brainzz/commands/channel_list_command.rb +69 -0
- data/lib/brainzz/core.rb +4 -0
- data/lib/brainzz/models/channel_list_wrapper.rb +19 -0
- data/lib/brainzz/params/channel_list_params.rb +28 -0
- data/lib/brainzz/responses/channel_list_response.rb +7 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cac458f1fe94ce4732b105c277a8021bd33368b
|
4
|
+
data.tar.gz: 58fbb8fd375834f8cb89638cd5a4108b785c81ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89b72e52add42b683bae743b7287a42d7760a9c7796b55b9d259bb56a8a132a20257906733fd89b9236cc43dd0ca768935cc8f735905c872ca09827cf345d49a
|
7
|
+
data.tar.gz: 5816cc5435f57b9b910feb84649b895bfba50ad87a54f59e19ca802051d82c104dfb2de66f1a30fefd94295031b40608c966614cb3e7ba1e3b2d56eed50f723a
|
data/README.md
CHANGED
@@ -117,6 +117,19 @@ and channel objects as the values.
|
|
117
117
|
|
118
118
|
* channel ids (Array[String])
|
119
119
|
|
120
|
+
### `channel_list`
|
121
|
+
|
122
|
+
Accepts a hash of options for the channels.list call. Allowing
|
123
|
+
for you to get managed channels by content owner id.
|
124
|
+
|
125
|
+
This endpoint returns a hash with a list of channels.
|
126
|
+
|
127
|
+
#### Parameters
|
128
|
+
|
129
|
+
* options (Hash)
|
130
|
+
* content_owner_id (String)
|
131
|
+
|
132
|
+
|
120
133
|
### `playlist_items_for`
|
121
134
|
|
122
135
|
On first invocation, only a playlist id is required:
|
data/lib/brainzz.rb
CHANGED
@@ -37,6 +37,7 @@ require_relative 'brainzz/models/playlist_item'
|
|
37
37
|
require_relative 'brainzz/models/playlist_items_wrapper'
|
38
38
|
require_relative 'brainzz/models/video_search_item'
|
39
39
|
require_relative 'brainzz/models/video_search_wrapper'
|
40
|
+
require_relative 'brainzz/models/channel_list_wrapper'
|
40
41
|
|
41
42
|
require_relative 'brainzz/services/access_token_service'
|
42
43
|
|
@@ -49,6 +50,7 @@ require_relative 'brainzz/params/channel_details_params'
|
|
49
50
|
require_relative 'brainzz/params/video_stats_params'
|
50
51
|
require_relative 'brainzz/params/channel_stats_params'
|
51
52
|
require_relative 'brainzz/params/playlist_items_params'
|
53
|
+
require_relative 'brainzz/params/channel_list_params'
|
52
54
|
|
53
55
|
require_relative 'brainzz/responses/playlist_items_response'
|
54
56
|
require_relative 'brainzz/responses/details_response'
|
@@ -73,6 +75,7 @@ require_relative 'brainzz/responses/annotations_clickable_response'
|
|
73
75
|
require_relative 'brainzz/responses/annotations_clicked_response'
|
74
76
|
require_relative 'brainzz/responses/view_percentage_response'
|
75
77
|
require_relative 'brainzz/responses/view_duration_response'
|
78
|
+
require_relative 'brainzz/responses/channel_list_response'
|
76
79
|
|
77
80
|
require_relative 'brainzz/commands/base_command'
|
78
81
|
require_relative 'brainzz/commands/data_command'
|
@@ -80,6 +83,7 @@ require_relative 'brainzz/commands/playlist_items_command'
|
|
80
83
|
require_relative 'brainzz/commands/video_details_command'
|
81
84
|
require_relative 'brainzz/commands/video_search_command'
|
82
85
|
require_relative 'brainzz/commands/channel_details_command'
|
86
|
+
require_relative 'brainzz/commands/channel_list_command'
|
83
87
|
require_relative 'brainzz/commands/analytics_command'
|
84
88
|
require_relative 'brainzz/commands/stats_command'
|
85
89
|
require_relative 'brainzz/commands/video_stats_command'
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Brainzz
|
2
|
+
class ChannelListCommand < DataCommand
|
3
|
+
class << self
|
4
|
+
private
|
5
|
+
|
6
|
+
def on_execute(options={}, content_owner_id=nil)
|
7
|
+
channel_list_params = ChannelListParams.new(options, content_owner_id)
|
8
|
+
|
9
|
+
if channel_list_params.valid?
|
10
|
+
response = get(channel_list_params)
|
11
|
+
ChannelListResponse.new response
|
12
|
+
else
|
13
|
+
ChannelListResponse.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def headers(parameters)
|
18
|
+
headers = super
|
19
|
+
|
20
|
+
if parameters.content_owner_id
|
21
|
+
if parameters.content_owner_id
|
22
|
+
access_token = access_token_for(parameters.content_owner_id)
|
23
|
+
end
|
24
|
+
|
25
|
+
headers = headers.merge({
|
26
|
+
'Authorization' => "Bearer #{access_token}",
|
27
|
+
})
|
28
|
+
end
|
29
|
+
|
30
|
+
headers
|
31
|
+
end
|
32
|
+
|
33
|
+
def access_token_for(content_owner_id)
|
34
|
+
AccessTokenService.retrieve_token_for content_owner_id
|
35
|
+
end
|
36
|
+
|
37
|
+
def endpoint
|
38
|
+
'channels'
|
39
|
+
end
|
40
|
+
|
41
|
+
def params(channel_list_params)
|
42
|
+
params = super.merge({
|
43
|
+
'maxResults' => 50,
|
44
|
+
'part' => channel_list_params.parts.join(',')
|
45
|
+
})
|
46
|
+
|
47
|
+
params['managedByMe'] = true if channel_list_params.managed_by_me
|
48
|
+
params['mine'] = true if channel_list_params.mine
|
49
|
+
|
50
|
+
if channel_list_params.next_page_token
|
51
|
+
params['pageToken'] = channel_list_params.next_page_token
|
52
|
+
end
|
53
|
+
|
54
|
+
if channel_list_params.content_owner_id
|
55
|
+
# If we are checking on behalf of a content owner,
|
56
|
+
# we are using an access token and not a key
|
57
|
+
params.delete(:key) if channel_list_params.content_owner_id
|
58
|
+
|
59
|
+
if channel_list_params.content_owner_id
|
60
|
+
params['onBehalfOfContentOwner'] =
|
61
|
+
channel_list_params.content_owner_id
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
params
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/brainzz/core.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Brainzz
|
2
|
+
class ChannelListWrapper
|
3
|
+
attr_accessor :next_page_token, :channel_list_items
|
4
|
+
|
5
|
+
def initialize(channel_list_data = {})
|
6
|
+
@channel_list_items = []
|
7
|
+
items = channel_list_data['items'] || []
|
8
|
+
items.each do |channel_list_item|
|
9
|
+
@channel_list_items << Channel.new(channel_list_item)
|
10
|
+
end
|
11
|
+
|
12
|
+
@next_page_token = channel_list_data['nextPageToken']
|
13
|
+
end
|
14
|
+
|
15
|
+
def last_page?
|
16
|
+
!next_page_token
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Brainzz
|
2
|
+
class ChannelListParams
|
3
|
+
attr_reader :parts
|
4
|
+
attr_reader :content_owner_id
|
5
|
+
attr_reader :managed_by_me
|
6
|
+
attr_reader :mine
|
7
|
+
attr_reader :next_page_token
|
8
|
+
|
9
|
+
def initialize(options={}, content_owner_id=nil)
|
10
|
+
@parts = options.fetch(:parts, default_channel_parts)
|
11
|
+
@content_owner_id = content_owner_id
|
12
|
+
@managed_by_me = options.fetch(:managed_by_me, false)
|
13
|
+
@mine = options.fetch(:mine, false)
|
14
|
+
@next_page_token = options.fetch(:next_page_token, nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
def valid?
|
18
|
+
!!(@parts && !@parts.empty?)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def default_channel_parts
|
24
|
+
%w(snippet contentDetails statistics)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brainzz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Travis Herrick
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-04-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -190,6 +190,7 @@ files:
|
|
190
190
|
- lib/brainzz/commands/channel_dislike_totals_command.rb
|
191
191
|
- lib/brainzz/commands/channel_like_count_by_day_command.rb
|
192
192
|
- lib/brainzz/commands/channel_like_totals_command.rb
|
193
|
+
- lib/brainzz/commands/channel_list_command.rb
|
193
194
|
- lib/brainzz/commands/channel_stats_command.rb
|
194
195
|
- lib/brainzz/commands/channel_subscribers_gained_by_day_command.rb
|
195
196
|
- lib/brainzz/commands/channel_subscribers_gained_totals_command.rb
|
@@ -247,6 +248,7 @@ files:
|
|
247
248
|
- lib/brainzz/models/channel_comment_count.rb
|
248
249
|
- lib/brainzz/models/channel_dislike_count.rb
|
249
250
|
- lib/brainzz/models/channel_like_count.rb
|
251
|
+
- lib/brainzz/models/channel_list_wrapper.rb
|
250
252
|
- lib/brainzz/models/channel_stat.rb
|
251
253
|
- lib/brainzz/models/channel_subscribers_gained_count.rb
|
252
254
|
- lib/brainzz/models/channel_subscribers_lost_count.rb
|
@@ -272,6 +274,7 @@ files:
|
|
272
274
|
- lib/brainzz/params/analytics_params.rb
|
273
275
|
- lib/brainzz/params/base_params.rb
|
274
276
|
- lib/brainzz/params/channel_details_params.rb
|
277
|
+
- lib/brainzz/params/channel_list_params.rb
|
275
278
|
- lib/brainzz/params/channel_stats_params.rb
|
276
279
|
- lib/brainzz/params/playlist_items_params.rb
|
277
280
|
- lib/brainzz/params/stats_params.rb
|
@@ -284,6 +287,7 @@ files:
|
|
284
287
|
- lib/brainzz/responses/channel_details_response.rb
|
285
288
|
- lib/brainzz/responses/channel_dislike_count_response.rb
|
286
289
|
- lib/brainzz/responses/channel_like_count_response.rb
|
290
|
+
- lib/brainzz/responses/channel_list_response.rb
|
287
291
|
- lib/brainzz/responses/channel_subscribers_gained_response.rb
|
288
292
|
- lib/brainzz/responses/channel_subscribers_lost_response.rb
|
289
293
|
- lib/brainzz/responses/channel_view_count_response.rb
|