youku_client 0.0.3 → 0.0.4
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/CHANGELOG.md +5 -0
- data/README.md +33 -25
- data/lib/youku/client.rb +8 -0
- data/lib/youku/v2/request.rb +1 -1
- data/lib/youku/v2/schemas.rb +27 -0
- data/lib/youku/v2/searches.rb +26 -0
- data/lib/youku/version.rb +1 -1
- data/spec/youku/v2/schemas_spec.rb +28 -0
- data/spec/youku/v2/searches_spec.rb +22 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69e0de5044e79c80e598fc26186171c5f8d913fd
|
4
|
+
data.tar.gz: 744c064639ccfba94c204cd0c8ae9ed407868f06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67b36cef42ed7e3e56fa531ffa1c887dc70a8f29a03c73deb6919ef15db43fae9ec0053e68d8019d0218401912956164f6284281b68d87d9dceed291752bc852
|
7
|
+
data.tar.gz: 075c204230e67681691ea131cba3389596d565c6776e94b0aacec84cb12e33a7a2693e927a4b966592463b8d87a759426f150b8fe77dc935d7c924ad84285d6e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
0.0.4
|
2
|
+
----------
|
3
|
+
* [Implemented schemas.video.category](https://github.com/Shuttlerock/youku_client/pull/8) ([@BenjaminSchaaf](https://github.com/BenjaminSchaaf))
|
4
|
+
* [Implemented searches.video.by_tag](https://github.com/Shuttlerock/youku_client/pull/9) ([@BenjaminSchaaf](https://github.com/BenjaminSchaaf))
|
5
|
+
|
1
6
|
0.0.3
|
2
7
|
------
|
3
8
|
* [Completed non-authenticated portion of the comments API](https://github.com/Shuttlerock/youku_client/pull/7) ([@BenjaminSchaaf](https://github.com/BenjaminSchaaf))
|
data/README.md
CHANGED
@@ -1,49 +1,57 @@
|
|
1
1
|
# Youku Ruby Gem
|
2
2
|
|
3
|
-
[](http://travis-ci.org/Shuttlerock/youku_client)
|
3
|
+
[](http://travis-ci.org/Shuttlerock/youku_client)
|
4
|
+
[](https://codeclimate.com/github/Shuttlerock/youku_client)
|
4
5
|
|
5
6
|
This is the unofficial Ruby wrapper for the Youku v2 API. It supports not all
|
6
|
-
endpoints currently available on the
|
7
|
-
[Youku API](http://open.youku.com/docs?id=0).
|
7
|
+
endpoints currently available on the [Youku API](http://open.youku.com/docs?id=0).
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
11
|
-
|
11
|
+
``` bash
|
12
|
+
gem install youku_client
|
13
|
+
```
|
12
14
|
|
13
15
|
### Some quick examples
|
14
16
|
|
15
17
|
First, instantiate the Client class:
|
16
18
|
|
17
|
-
|
19
|
+
``` ruby
|
20
|
+
>> client = Youku.new(client_id: 'id', client_secret: 'secret')
|
21
|
+
```
|
18
22
|
|
19
23
|
Get users by IDs:
|
20
24
|
|
21
|
-
|
25
|
+
``` ruby
|
26
|
+
>> client.users.show_batch(user_ids: '1,2')
|
27
|
+
```
|
22
28
|
|
23
29
|
Implemented API endpoints:
|
24
30
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
31
|
+
- `comments.by_video`
|
32
|
+
- `comments.show`
|
33
|
+
- `comments.show_batch`
|
34
|
+
- `comments.hot.by_video`
|
35
|
+
- `searches.video.by_keyword`
|
36
|
+
- `searches.video.by_tag`
|
37
|
+
- `users.show_batch`
|
38
|
+
- `users.show`
|
39
|
+
- `users.friendship.followers`
|
40
|
+
- `users.friendship.followings`
|
41
|
+
- `videos.show_basic`
|
42
|
+
- `videos.show_basic_batch`
|
43
|
+
- `videos.show`
|
44
|
+
- `videos.show_batch`
|
45
|
+
- `videos.by_user`
|
46
|
+
- `videos.by_related`
|
47
|
+
- `videos.by_category`
|
48
|
+
- `videos.favorite.by_user`
|
49
|
+
- `schemas.video.category`
|
42
50
|
|
43
51
|
### Contributions and Pull Requests
|
44
52
|
|
45
|
-
No request is too small and I encourage everyone to get involved. So
|
46
|
-
|
53
|
+
No request is too small and I encourage everyone to get involved. So please if
|
54
|
+
you would like to contribute, let me know and throw me a pull request!
|
47
55
|
|
48
56
|
### Requirements
|
49
57
|
|
data/lib/youku/client.rb
CHANGED
@@ -40,6 +40,13 @@ module Youku
|
|
40
40
|
def comments
|
41
41
|
Youku::V2::Comments.new(self)
|
42
42
|
end
|
43
|
+
|
44
|
+
# Public: Get users API.
|
45
|
+
#
|
46
|
+
# Returns the instance of Youku::V2::Users.
|
47
|
+
def schemas
|
48
|
+
Youku::V2::Schemas.new(self)
|
49
|
+
end
|
43
50
|
end
|
44
51
|
end
|
45
52
|
|
@@ -48,3 +55,4 @@ require 'youku/v2/searches'
|
|
48
55
|
require 'youku/v2/users'
|
49
56
|
require 'youku/v2/videos'
|
50
57
|
require 'youku/v2/comments'
|
58
|
+
require 'youku/v2/schemas'
|
data/lib/youku/v2/request.rb
CHANGED
@@ -11,7 +11,7 @@ module Youku
|
|
11
11
|
#
|
12
12
|
# url - The String url.
|
13
13
|
# params - The Hash query params.
|
14
|
-
def initialize(url, params)
|
14
|
+
def initialize(url, params = {})
|
15
15
|
@url = url
|
16
16
|
@params = params
|
17
17
|
@response = Typhoeus::Request.new(url, params: params, connecttimeout: 5, timeout: 10).run
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Youku
|
2
|
+
module V2
|
3
|
+
class Schemas < Base
|
4
|
+
BASE_URI = "#{BASE_URI}/schemas"
|
5
|
+
|
6
|
+
# Public: Get video API.
|
7
|
+
#
|
8
|
+
# Returns the instance of Youku::V2::Schemas::Video.
|
9
|
+
def video
|
10
|
+
Video.new(client)
|
11
|
+
end
|
12
|
+
|
13
|
+
class Video < Base
|
14
|
+
BASE_URI = "#{BASE_URI}/video"
|
15
|
+
|
16
|
+
# Public: Get video categories.
|
17
|
+
#
|
18
|
+
# See: http://open.youku.com/docs?id=90
|
19
|
+
#
|
20
|
+
# Returns the instance of Youku::V2::Request.
|
21
|
+
def category()
|
22
|
+
Youku::V2::Request.new "#{BASE_URI}/category.json"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/youku/v2/searches.rb
CHANGED
@@ -12,6 +12,32 @@ module Youku
|
|
12
12
|
class Video < Base
|
13
13
|
BASE_URI = "#{BASE_URI}/searches/video"
|
14
14
|
|
15
|
+
# Public: Get videos by tag.
|
16
|
+
#
|
17
|
+
# See: http://open.youku.com/docs?id=80
|
18
|
+
#
|
19
|
+
# tag - The comma separated String of tags.
|
20
|
+
# category - The String category.
|
21
|
+
# period - The String period.
|
22
|
+
# orderby - The String order of videos.
|
23
|
+
# userid - The String or Integer of a youku user ID.
|
24
|
+
# page - The Integer page number.
|
25
|
+
# count - The Integer page size.
|
26
|
+
#
|
27
|
+
# Returns the instance of Youku::V2::Request.
|
28
|
+
def by_tag(tag: nil, category: nil, userid: nil, period: 'today', orderby: 'relevance', page: 1, count: 20)
|
29
|
+
Youku::V2::Request.new "#{BASE_URI}/by_tag.json", {
|
30
|
+
client_id: client.client_id,
|
31
|
+
tag: tag,
|
32
|
+
category: category,
|
33
|
+
period: period,
|
34
|
+
orderby: orderby,
|
35
|
+
userid: userid,
|
36
|
+
page: page,
|
37
|
+
count: count,
|
38
|
+
}
|
39
|
+
end
|
40
|
+
|
15
41
|
# Public: Get videos by keyword.
|
16
42
|
#
|
17
43
|
# See: http://open.youku.com/docs?id=81
|
data/lib/youku/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Youku::V2::Schemas do
|
4
|
+
|
5
|
+
let(:client) { Youku::Client.new(client_id: 'client-id') }
|
6
|
+
|
7
|
+
describe '#video' do
|
8
|
+
subject { client.schemas.video }
|
9
|
+
|
10
|
+
it { expect(subject).to be_a Youku::V2::Schemas::Video }
|
11
|
+
it { expect(subject.client).to eq client }
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '::Video' do
|
15
|
+
describe '#category' do
|
16
|
+
let(:url) { 'https://openapi.youku.com/v2/schemas/video/category.json' }
|
17
|
+
let(:query) { {} }
|
18
|
+
|
19
|
+
before do
|
20
|
+
stub_request(:get, url).with(query: query).to_return(status: 200)
|
21
|
+
end
|
22
|
+
|
23
|
+
subject { client.schemas.video.category }
|
24
|
+
|
25
|
+
it_should_behave_like 'a base Youku API V2 requests'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -34,6 +34,28 @@ describe Youku::V2::Searches do
|
|
34
34
|
|
35
35
|
it_should_behave_like 'a base Youku API V2 requests'
|
36
36
|
end
|
37
|
+
|
38
|
+
describe '#by_tag' do
|
39
|
+
let(:url) { 'https://openapi.youku.com/v2/searches/video/by_tag.json' }
|
40
|
+
let(:query) { {
|
41
|
+
client_id: client.client_id,
|
42
|
+
tag: 2014,
|
43
|
+
category: '',
|
44
|
+
period: 'today',
|
45
|
+
orderby: 'relevance',
|
46
|
+
userid: '',
|
47
|
+
page: 1,
|
48
|
+
count: 20
|
49
|
+
} }
|
50
|
+
|
51
|
+
before do
|
52
|
+
stub_request(:get, url).with(query: query).to_return(status: 200)
|
53
|
+
end
|
54
|
+
|
55
|
+
subject { video.by_tag(tag: 2014) }
|
56
|
+
|
57
|
+
it_should_behave_like 'a base Youku API V2 requests'
|
58
|
+
end
|
37
59
|
end
|
38
60
|
|
39
61
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: youku_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexey Vokhmin
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-12-
|
13
|
+
date: 2015-12-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: typhoeus
|
@@ -116,6 +116,7 @@ files:
|
|
116
116
|
- lib/youku/v2/base.rb
|
117
117
|
- lib/youku/v2/comments.rb
|
118
118
|
- lib/youku/v2/request.rb
|
119
|
+
- lib/youku/v2/schemas.rb
|
119
120
|
- lib/youku/v2/searches.rb
|
120
121
|
- lib/youku/v2/users.rb
|
121
122
|
- lib/youku/v2/videos.rb
|
@@ -125,6 +126,7 @@ files:
|
|
125
126
|
- spec/support/shared_examples/youku_api_v2_examples.rb
|
126
127
|
- spec/youku/client_spec.rb
|
127
128
|
- spec/youku/v2/comments_spec.rb
|
129
|
+
- spec/youku/v2/schemas_spec.rb
|
128
130
|
- spec/youku/v2/searches_spec.rb
|
129
131
|
- spec/youku/v2/users_spec.rb
|
130
132
|
- spec/youku/v2/videos_spec.rb
|
@@ -158,6 +160,7 @@ test_files:
|
|
158
160
|
- spec/support/shared_examples/youku_api_v2_examples.rb
|
159
161
|
- spec/youku/client_spec.rb
|
160
162
|
- spec/youku/v2/comments_spec.rb
|
163
|
+
- spec/youku/v2/schemas_spec.rb
|
161
164
|
- spec/youku/v2/searches_spec.rb
|
162
165
|
- spec/youku/v2/users_spec.rb
|
163
166
|
- spec/youku/v2/videos_spec.rb
|