brainzz 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/brainzz/commands/analytics_command.rb +13 -5
- data/lib/brainzz/commands/base_command.rb +6 -0
- data/lib/brainzz/commands/data_command.rb +8 -2
- data/lib/brainzz/commands/playlist_items_command.rb +3 -3
- data/lib/brainzz/commands/video_details_command.rb +3 -3
- data/lib/brainzz/commands/video_stats_command.rb +6 -10
- data/lib/brainzz/services/access_token_service.rb +4 -4
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d31efe5a7f4dfc90e786616d1e1780abaaf3d305
|
4
|
+
data.tar.gz: 306d122d776ab51eea8b9bbf86616ac0b93fabb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77070886f824e6bfaf67e05f23dcd5379b71959f31515bb0969b5a3c6076af366c2fc0f9e93dc782e3b1fd5638165e1c7f61490403e82175c5a6b2ebadbb88b6
|
7
|
+
data.tar.gz: f93fc6c4eb0c2b475ff3e1abae3703cd8dbfe5de3ae5806952b0a6fdb47f6e48516f7cadd8992b78a07909858b5a8de9b5a0b4643e7f93f2248b39b926062dae
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Brainzz
|
2
2
|
=======
|
3
3
|
|
4
|
-
[](https://semaphoreci.com/awesomenesstv/brainzz)
|
5
5
|
|
6
6
|
Brainzz explains why youtoobers' brainzz are turned to mush.
|
7
7
|
... by extracting data from the YouTube API.
|
@@ -1,6 +1,13 @@
|
|
1
1
|
module Brainzz
|
2
2
|
class AnalyticsCommand < BaseCommand
|
3
3
|
class << self
|
4
|
+
def execute(*args)
|
5
|
+
local_token = access_token
|
6
|
+
response = super
|
7
|
+
response.scrub local_token, 'ACCESS_TOKEN'
|
8
|
+
response
|
9
|
+
end
|
10
|
+
|
4
11
|
private
|
5
12
|
|
6
13
|
def base_url
|
@@ -18,11 +25,7 @@ module Brainzz
|
|
18
25
|
end
|
19
26
|
|
20
27
|
def access_token
|
21
|
-
AccessTokenService.retrieve_token
|
22
|
-
end
|
23
|
-
|
24
|
-
def refresh_token
|
25
|
-
ENV['BRAINZZ_REFRESH_TOKEN']
|
28
|
+
AccessTokenService.retrieve_token
|
26
29
|
end
|
27
30
|
|
28
31
|
def params(analytics_params)
|
@@ -36,6 +39,11 @@ module Brainzz
|
|
36
39
|
def content_owner
|
37
40
|
ENV['BRAINZZ_CONTENT_OWNER']
|
38
41
|
end
|
42
|
+
|
43
|
+
def scrub(response)
|
44
|
+
response.scrub access_token, 'ACCESS_TOKEN'
|
45
|
+
response.scrub content_owner, 'CONTENT_OWNER'
|
46
|
+
end
|
39
47
|
end
|
40
48
|
end
|
41
49
|
end
|
@@ -1,9 +1,11 @@
|
|
1
1
|
module Brainzz
|
2
2
|
class DataCommand < BaseCommand
|
3
3
|
class << self
|
4
|
+
private
|
5
|
+
|
4
6
|
def params(parameters = nil)
|
5
7
|
super.merge({
|
6
|
-
:key =>
|
8
|
+
:key => google_api_key,
|
7
9
|
})
|
8
10
|
end
|
9
11
|
|
@@ -11,9 +13,13 @@ module Brainzz
|
|
11
13
|
'https://www.googleapis.com/youtube/v3'
|
12
14
|
end
|
13
15
|
|
14
|
-
def
|
16
|
+
def google_api_key
|
15
17
|
ENV['BRAINZZ_GOOGLE_API_KEY']
|
16
18
|
end
|
19
|
+
|
20
|
+
def scrub(response)
|
21
|
+
response.scrub google_api_key, 'GOOGLE_API_KEY'
|
22
|
+
end
|
17
23
|
end
|
18
24
|
end
|
19
25
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module Brainzz
|
2
2
|
class PlaylistItemsCommand < DataCommand
|
3
3
|
class << self
|
4
|
-
|
4
|
+
private
|
5
|
+
|
6
|
+
def on_execute(playlist_id, response)
|
5
7
|
playlist_items_params = PlaylistItemsParams.new(playlist_id, response)
|
6
8
|
|
7
9
|
if playlist_items_params.valid?
|
@@ -12,8 +14,6 @@ module Brainzz
|
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
|
-
private
|
16
|
-
|
17
17
|
def endpoint
|
18
18
|
'playlistItems'
|
19
19
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module Brainzz
|
2
2
|
class VideoDetailsCommand < DataCommand
|
3
3
|
class << self
|
4
|
-
|
4
|
+
private
|
5
|
+
|
6
|
+
def on_execute(video_ids)
|
5
7
|
video_details_params = VideoDetailsParams.new(video_ids)
|
6
8
|
|
7
9
|
if video_details_params.valid?
|
@@ -12,8 +14,6 @@ module Brainzz
|
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
|
-
private
|
16
|
-
|
17
17
|
def endpoint
|
18
18
|
'videos'
|
19
19
|
end
|
@@ -1,7 +1,9 @@
|
|
1
1
|
module Brainzz
|
2
2
|
class VideoStatsCommand < AnalyticsCommand
|
3
3
|
class << self
|
4
|
-
|
4
|
+
private
|
5
|
+
|
6
|
+
def on_execute(video_id, start_date, end_date)
|
5
7
|
video_stats_params = VideoStatsParams.new ({
|
6
8
|
:video_id => video_id,
|
7
9
|
:start_date => start_date,
|
@@ -9,20 +11,14 @@ module Brainzz
|
|
9
11
|
})
|
10
12
|
|
11
13
|
if video_stats_params.valid?
|
12
|
-
|
14
|
+
@response_class.new get(video_stats_params)
|
13
15
|
else
|
14
|
-
|
16
|
+
@response_class.new
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
|
-
private
|
19
|
-
|
20
|
-
def response
|
21
|
-
@response
|
22
|
-
end
|
23
|
-
|
24
20
|
def make_with_response(response)
|
25
|
-
@
|
21
|
+
@response_class = response
|
26
22
|
end
|
27
23
|
|
28
24
|
def params(video_stats_params)
|
@@ -4,10 +4,10 @@ module Brainzz
|
|
4
4
|
|
5
5
|
@@mutex = Mutex.new
|
6
6
|
|
7
|
-
def retrieve_token
|
7
|
+
def retrieve_token
|
8
8
|
@@mutex.synchronize do
|
9
9
|
if !defined?(@token) or @token.expired?
|
10
|
-
response = Toke.retrieve_token(params
|
10
|
+
response = Toke.retrieve_token(params)
|
11
11
|
@token = response.data if response.success?
|
12
12
|
end
|
13
13
|
|
@@ -17,9 +17,9 @@ module Brainzz
|
|
17
17
|
|
18
18
|
private
|
19
19
|
|
20
|
-
def params
|
20
|
+
def params
|
21
21
|
{
|
22
|
-
:refresh_token =>
|
22
|
+
:refresh_token => ENV['BRAINZZ_REFRESH_TOKEN'],
|
23
23
|
:client_id => ENV['BRAINZZ_CLIENT_ID'],
|
24
24
|
:client_secret => ENV['BRAINZZ_CLIENT_SECRET'],
|
25
25
|
}
|
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.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Travis Herrick
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-06-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -32,28 +32,28 @@ dependencies:
|
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 0.0.4
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 0.0.4
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: toke
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
49
|
+
version: 0.0.3
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: 0.0.3
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: gems
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,14 +74,14 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '4'
|
77
|
+
version: '4.1'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '4'
|
84
|
+
version: '4.1'
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: cane
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -284,7 +284,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
284
284
|
version: '0'
|
285
285
|
requirements: []
|
286
286
|
rubyforge_project:
|
287
|
-
rubygems_version: 2.4.
|
287
|
+
rubygems_version: 2.4.8
|
288
288
|
signing_key:
|
289
289
|
specification_version: 4
|
290
290
|
summary: YouTube API interface
|