trakt_api 0.1.0 → 0.1.1
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 +17 -6
- data/lib/trakt_api.rb +3 -2
- data/lib/trakt_api/base.rb +2 -3
- data/lib/trakt_api/client.rb +6 -2
- data/lib/trakt_api/search.rb +4 -0
- data/lib/trakt_api/shows.rb +23 -0
- data/lib/trakt_api/shows/seasons.rb +23 -0
- data/lib/trakt_api/shows/seasons/episodes.rb +19 -0
- data/lib/trakt_api/version.rb +1 -1
- data/spec/fixtures/episode.json +12 -0
- data/spec/fixtures/seasons.json +47 -0
- data/spec/fixtures/show.json +12 -0
- data/spec/functionals/search_spec.rb +12 -5
- data/spec/functionals/shows/seasons/episodes_spec.rb +30 -0
- data/spec/functionals/shows/seasons_spec.rb +36 -0
- data/spec/functionals/shows_spec.rb +36 -0
- data/spec/integrations/search_spec.rb +1 -1
- data/spec/integrations/shows/seasons_spec.rb +16 -0
- data/spec/integrations/shows_spec.rb +16 -0
- data/trakt_api.gemspec +0 -2
- metadata +21 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 199f695eb7ddbd0b85d7ff6f40e305ced3dd7952
|
4
|
+
data.tar.gz: 8e8e4e61a8b20e8c857f1b6de15faba30b8c03de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05fa65d8228e5e321055f8950979da24b0b8a30b58d7a5413c1060f735e3306ffc02f34ac2504dbac9824d734a2982179430fe7881068895155c0ba48709d0fb
|
7
|
+
data.tar.gz: 87e576cbf7902b61894a22c14b0202e45963aaab61273fc3b520fc9f5dc8cd3094d65c4e2dac33500be29b0c342650102943250cde28ad7b2d5f513be973569f
|
data/README.md
CHANGED
@@ -35,7 +35,8 @@ Language attribute is optional with default value 'en'
|
|
35
35
|
|
36
36
|
```ruby
|
37
37
|
client = TraktApi::Client.new(api_key: '...')
|
38
|
-
client.search
|
38
|
+
client.search # => #<TraktApi::Search>
|
39
|
+
client.show # => #<TraktApi::Show>
|
39
40
|
```
|
40
41
|
|
41
42
|
* II case (direct access to api class, many entry points)
|
@@ -46,15 +47,25 @@ Language attribute is required
|
|
46
47
|
ThetvdbApi::Search.new(api_key: '...').call({...})
|
47
48
|
```
|
48
49
|
|
49
|
-
##
|
50
|
+
## Methods
|
50
51
|
|
51
52
|
Full documentation is available here: [http://docs.trakt.apiary.io](http://docs.trakt.apiary.io)
|
52
53
|
|
53
|
-
Search
|
54
|
+
### Search methods
|
54
55
|
|
55
|
-
|
56
|
-
|
57
|
-
|
56
|
+
* call
|
57
|
+
* call_url
|
58
|
+
|
59
|
+
### Show methods
|
60
|
+
|
61
|
+
* find
|
62
|
+
* find_url
|
63
|
+
* seasons
|
64
|
+
* seasons.all
|
65
|
+
* seasons.all_url
|
66
|
+
* seasons.episodes
|
67
|
+
* seasons.episodes.find
|
68
|
+
* seasons.episodes.find_url
|
58
69
|
|
59
70
|
## Contributing
|
60
71
|
|
data/lib/trakt_api.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
require 'ov'
|
2
|
-
|
3
1
|
module TraktApi; end
|
4
2
|
|
5
3
|
require 'trakt_api/version'
|
6
4
|
require 'trakt_api/base'
|
7
5
|
require 'trakt_api/client'
|
8
6
|
require 'trakt_api/search'
|
7
|
+
require 'trakt_api/shows'
|
8
|
+
require 'trakt_api/shows/seasons'
|
9
|
+
require 'trakt_api/shows/seasons/episodes'
|
data/lib/trakt_api/base.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'service_api'
|
2
|
-
require 'string_to_sha1'
|
3
2
|
|
4
3
|
class TraktApi::Base
|
5
4
|
include ServiceApi::BaseFaraday
|
@@ -48,9 +47,9 @@ class TraktApi::Base
|
|
48
47
|
|
49
48
|
def base_url
|
50
49
|
if @config[:sandbox]
|
51
|
-
'https://api.staging.trakt.tv'
|
50
|
+
'https://api.staging.trakt.tv/'
|
52
51
|
else
|
53
|
-
'https://api.trakt.tv'
|
52
|
+
'https://api.trakt.tv/'
|
54
53
|
end
|
55
54
|
end
|
56
55
|
end
|
data/lib/trakt_api/client.rb
CHANGED
@@ -7,7 +7,11 @@ class TraktApi::Client
|
|
7
7
|
@config[:adapter] ||= :net_http
|
8
8
|
end
|
9
9
|
|
10
|
-
def search
|
11
|
-
@search ||= TraktApi::Search.new(config)
|
10
|
+
def search
|
11
|
+
@search ||= TraktApi::Search.new(config)
|
12
|
+
end
|
13
|
+
|
14
|
+
def shows
|
15
|
+
@search ||= TraktApi::Shows.new(config)
|
12
16
|
end
|
13
17
|
end
|
data/lib/trakt_api/search.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
class TraktApi::Shows < TraktApi::Base
|
2
|
+
def find(options)
|
3
|
+
find_path_with_params(options).get
|
4
|
+
end
|
5
|
+
|
6
|
+
def find_url(options)
|
7
|
+
find_path_with_params(options).url
|
8
|
+
end
|
9
|
+
|
10
|
+
def seasons
|
11
|
+
@seasons ||= TraktApi::Shows::Seasons.new(@config)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def find_path_with_params(options)
|
17
|
+
path(find_path).params(options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def find_path
|
21
|
+
'shows/:id'
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class TraktApi::Shows::Seasons < TraktApi::Base
|
2
|
+
def all(options)
|
3
|
+
all_path_with_params(options).get
|
4
|
+
end
|
5
|
+
|
6
|
+
def all_url(options)
|
7
|
+
all_path_with_params(options).url
|
8
|
+
end
|
9
|
+
|
10
|
+
def episodes
|
11
|
+
@episodes ||= TraktApi::Shows::Seasons::Episodes.new(@config)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def all_path_with_params(options)
|
17
|
+
path(all_path).params(options)
|
18
|
+
end
|
19
|
+
|
20
|
+
def all_path
|
21
|
+
'shows/:id/seasons'
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class TraktApi::Shows::Seasons::Episodes < TraktApi::Base
|
2
|
+
def find(options)
|
3
|
+
find_path_with_params(options).get
|
4
|
+
end
|
5
|
+
|
6
|
+
def find_url(options)
|
7
|
+
find_path_with_params(options).url
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def find_path_with_params(options)
|
13
|
+
path(find_path).params(options)
|
14
|
+
end
|
15
|
+
|
16
|
+
def find_path
|
17
|
+
'shows/:id/seasons/:season/episodes/:episode'
|
18
|
+
end
|
19
|
+
end
|
data/lib/trakt_api/version.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"number": 0,
|
4
|
+
"ids": {
|
5
|
+
"trakt": 1,
|
6
|
+
"tvdb": 137481,
|
7
|
+
"tmdb": 3627,
|
8
|
+
"tvrage": null
|
9
|
+
}
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"number": 1,
|
13
|
+
"ids": {
|
14
|
+
"trakt": 2,
|
15
|
+
"tvdb": 364731,
|
16
|
+
"tmdb": 3624,
|
17
|
+
"tvrage": null
|
18
|
+
}
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"number": 2,
|
22
|
+
"ids": {
|
23
|
+
"trakt": 3,
|
24
|
+
"tvdb": 473271,
|
25
|
+
"tmdb": 3625,
|
26
|
+
"tvrage": null
|
27
|
+
}
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"number": 3,
|
31
|
+
"ids": {
|
32
|
+
"trakt": 4,
|
33
|
+
"tvdb": 488434,
|
34
|
+
"tmdb": 3626,
|
35
|
+
"tvrage": null
|
36
|
+
}
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"number": 4,
|
40
|
+
"ids": {
|
41
|
+
"trakt": 5,
|
42
|
+
"tvdb": 522882,
|
43
|
+
"tmdb": 3628,
|
44
|
+
"tvrage": null
|
45
|
+
}
|
46
|
+
}
|
47
|
+
]
|
@@ -2,6 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe TraktApi::Search do
|
4
4
|
let(:client) { TraktApi::Client.new(api_key: '123456789', adapter: :test, adapter_options: faraday_stubs) }
|
5
|
+
let(:model) { client.search }
|
5
6
|
|
6
7
|
let(:faraday_stubs) do
|
7
8
|
Faraday::Adapter::Test::Stubs.new do |stub|
|
@@ -11,13 +12,19 @@ describe TraktApi::Search do
|
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
14
|
-
describe '.
|
15
|
+
describe '.call' do
|
15
16
|
it 'should return Faraday::Response class' do
|
16
|
-
expect(
|
17
|
+
expect(model.call(query: 'batman', type: 'show')).to be_a(Faraday::Response)
|
17
18
|
end
|
18
19
|
|
19
|
-
it 'should return
|
20
|
-
expect(
|
20
|
+
it 'should return Array class for body reponse' do
|
21
|
+
expect(model.call(query: 'batman', type: 'show').body).to be_a(Array)
|
21
22
|
end
|
22
23
|
end
|
23
|
-
|
24
|
+
|
25
|
+
describe '.call_url' do
|
26
|
+
it 'should return String class' do
|
27
|
+
expect(model.call_url(query: 'batman', type: 'show')).to eq('https://api.trakt.tv/search?query=batman&type=show')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Shows::Seasons::Episodes do
|
4
|
+
let(:client) { TraktApi::Client.new(api_key: '123456789', adapter: :test, adapter_options: faraday_stubs) }
|
5
|
+
let(:model) { client.shows.seasons.episodes }
|
6
|
+
|
7
|
+
let(:faraday_stubs) do
|
8
|
+
Faraday::Adapter::Test::Stubs.new do |stub|
|
9
|
+
stub.get('/shows/123/seasons/1/episodes/1') do
|
10
|
+
[200, { content_type: 'json' }, File.read('spec/fixtures/episode.json')]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.find' do
|
16
|
+
it 'should return Faraday::Response class' do
|
17
|
+
expect(model.find(id: '123', season: 1, episode: 1)).to be_a(Faraday::Response)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return Hash class for body reponse' do
|
21
|
+
expect(model.find(id: '123', season: 1, episode: 1).body).to be_a(Hash)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.find_url' do
|
26
|
+
it 'should return String class' do
|
27
|
+
expect(model.find_url(id: '123', season: 1, episode: 1)).to eq('https://api.trakt.tv/shows/123/seasons/1/episodes/1')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Shows::Seasons do
|
4
|
+
let(:client) { TraktApi::Client.new(api_key: '123456789', adapter: :test, adapter_options: faraday_stubs) }
|
5
|
+
let(:model) { client.shows.seasons }
|
6
|
+
|
7
|
+
let(:faraday_stubs) do
|
8
|
+
Faraday::Adapter::Test::Stubs.new do |stub|
|
9
|
+
stub.get('/shows/123/seasons') do
|
10
|
+
[200, { content_type: 'json' }, File.read('spec/fixtures/seasons.json')]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.all' do
|
16
|
+
it 'should return Faraday::Response class' do
|
17
|
+
expect(model.all(id: '123')).to be_a(Faraday::Response)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return Array class for body reponse' do
|
21
|
+
expect(model.all(id: '123').body).to be_a(Array)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.all_url' do
|
26
|
+
it 'should return String class' do
|
27
|
+
expect(model.all_url(id: '123')).to eq('https://api.trakt.tv/shows/123/seasons')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '.seasons' do
|
32
|
+
it 'should return TraktApi::Shows::Seasons::Episodes class' do
|
33
|
+
expect(model.episodes).to be_a(TraktApi::Shows::Seasons::Episodes)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Shows do
|
4
|
+
let(:client) { TraktApi::Client.new(api_key: '123456789', adapter: :test, adapter_options: faraday_stubs) }
|
5
|
+
let(:model) { client.shows }
|
6
|
+
|
7
|
+
let(:faraday_stubs) do
|
8
|
+
Faraday::Adapter::Test::Stubs.new do |stub|
|
9
|
+
stub.get('/shows/123') do
|
10
|
+
[200, { content_type: 'json' }, File.read('spec/fixtures/show.json')]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.find' do
|
16
|
+
it 'should return Faraday::Response class' do
|
17
|
+
expect(model.find(id: '123')).to be_a(Faraday::Response)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should return Hash class for body reponse' do
|
21
|
+
expect(model.find(id: '123').body).to be_a(Hash)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.find_url' do
|
26
|
+
it 'should return String class' do
|
27
|
+
expect(model.find_url(id: '123')).to eq('https://api.trakt.tv/shows/123')
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '.seasons' do
|
32
|
+
it 'should return TraktApi::Shows::Seasons class' do
|
33
|
+
expect(model.seasons).to be_a(TraktApi::Shows::Seasons)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe TraktApi::Search do
|
4
4
|
let(:model) { TraktApi::Search.new(api_key: API_KEY) }
|
5
5
|
|
6
|
-
describe '.
|
6
|
+
describe '.find' do
|
7
7
|
it 'should return response class' do
|
8
8
|
response = model.call(query: 'batman', type: 'show')
|
9
9
|
ap response.body
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Shows::Seasons do
|
4
|
+
let(:model) { TraktApi::Shows::Seasons.new(api_key: API_KEY) }
|
5
|
+
|
6
|
+
describe '.find' do
|
7
|
+
it 'should return response class' do
|
8
|
+
response = model.all(id: 'game-of-thrones')
|
9
|
+
ap response.body
|
10
|
+
|
11
|
+
expect(response).to be_a(Faraday::Response)
|
12
|
+
expect(response.status).to eq(200)
|
13
|
+
expect(response.body).to be_a(Array)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TraktApi::Shows do
|
4
|
+
let(:model) { TraktApi::Shows.new(api_key: API_KEY) }
|
5
|
+
|
6
|
+
describe '.find' do
|
7
|
+
it 'should return response class' do
|
8
|
+
response = model.find(id: 'game-of-thrones')
|
9
|
+
ap response.body
|
10
|
+
|
11
|
+
expect(response).to be_a(Faraday::Response)
|
12
|
+
expect(response.status).to eq(200)
|
13
|
+
expect(response.body).to be_a(Hash)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/trakt_api.gemspec
CHANGED
@@ -19,8 +19,6 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_runtime_dependency 'service_api', '~> 0.1.0'
|
22
|
-
spec.add_runtime_dependency 'string_to_sha1', '>= 1.0.0'
|
23
|
-
spec.add_runtime_dependency 'ov', '~> 0.1.0'
|
24
22
|
|
25
23
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
26
24
|
spec.add_development_dependency 'rake'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trakt_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krzysztof Wawer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: service_api
|
@@ -24,34 +24,6 @@ dependencies:
|
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.1.0
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: string_to_sha1
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.0
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 1.0.0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: ov
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.1.0
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: 0.1.0
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
28
|
name: bundler
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,10 +111,21 @@ files:
|
|
139
111
|
- lib/trakt_api/base.rb
|
140
112
|
- lib/trakt_api/client.rb
|
141
113
|
- lib/trakt_api/search.rb
|
114
|
+
- lib/trakt_api/shows.rb
|
115
|
+
- lib/trakt_api/shows/seasons.rb
|
116
|
+
- lib/trakt_api/shows/seasons/episodes.rb
|
142
117
|
- lib/trakt_api/version.rb
|
118
|
+
- spec/fixtures/episode.json
|
143
119
|
- spec/fixtures/search.json
|
120
|
+
- spec/fixtures/seasons.json
|
121
|
+
- spec/fixtures/show.json
|
144
122
|
- spec/functionals/search_spec.rb
|
123
|
+
- spec/functionals/shows/seasons/episodes_spec.rb
|
124
|
+
- spec/functionals/shows/seasons_spec.rb
|
125
|
+
- spec/functionals/shows_spec.rb
|
145
126
|
- spec/integrations/search_spec.rb
|
127
|
+
- spec/integrations/shows/seasons_spec.rb
|
128
|
+
- spec/integrations/shows_spec.rb
|
146
129
|
- spec/spec_helper.rb
|
147
130
|
- spec/support/.keep
|
148
131
|
- spec/support/trakt_api.rb.example
|
@@ -172,9 +155,17 @@ signing_key:
|
|
172
155
|
specification_version: 4
|
173
156
|
summary: Ruby client for trakt.tv API
|
174
157
|
test_files:
|
158
|
+
- spec/fixtures/episode.json
|
175
159
|
- spec/fixtures/search.json
|
160
|
+
- spec/fixtures/seasons.json
|
161
|
+
- spec/fixtures/show.json
|
176
162
|
- spec/functionals/search_spec.rb
|
163
|
+
- spec/functionals/shows/seasons/episodes_spec.rb
|
164
|
+
- spec/functionals/shows/seasons_spec.rb
|
165
|
+
- spec/functionals/shows_spec.rb
|
177
166
|
- spec/integrations/search_spec.rb
|
167
|
+
- spec/integrations/shows/seasons_spec.rb
|
168
|
+
- spec/integrations/shows_spec.rb
|
178
169
|
- spec/spec_helper.rb
|
179
170
|
- spec/support/.keep
|
180
171
|
- spec/support/trakt_api.rb.example
|