youku_client 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
[![Build Status](https://secure.travis-ci.org/Shuttlerock/youku_client.png)](http://travis-ci.org/Shuttlerock/youku_client)
|
3
|
+
[![Build Status](https://secure.travis-ci.org/Shuttlerock/youku_client.png)](http://travis-ci.org/Shuttlerock/youku_client)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/Shuttlerock/youku_client/badges/gpa.svg)](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
|