fanart_api 0.2.1 → 0.3.0
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/.gitignore +2 -15
- data/.travis.yml +2 -1
- data/CHANGELOG.md +31 -0
- data/README.md +64 -31
- data/fanart_api.gemspec +5 -3
- data/lib/fanart_api.rb +2 -0
- data/lib/fanart_api/base.rb +4 -4
- data/lib/fanart_api/client.rb +7 -7
- data/lib/fanart_api/movie.rb +97 -5
- data/lib/fanart_api/music.rb +167 -9
- data/lib/fanart_api/tv.rb +95 -5
- data/lib/fanart_api/version.rb +1 -1
- data/spec/functionals/movie_spec.rb +71 -14
- data/spec/functionals/music_spec.rb +121 -24
- data/spec/functionals/tv_spec.rb +69 -12
- data/spec/integrations/movie_spec.rb +21 -9
- data/spec/integrations/music_spec.rb +39 -17
- data/spec/spec_helper.rb +2 -4
- data/spec/support/.keep +0 -0
- data/spec/support/api_key.rb.example +1 -0
- metadata +46 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f051fccf4b6b3ef7ef55291a8ef381a0a0fb5a8
|
4
|
+
data.tar.gz: 90110694c1bf982f7b3d956a8dd1d7e143bcce8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad47c30a859bd6001982736e351bddb1d7eefe14fce201b6e02a37af9a7f4237978a0a92066e2dbd85758bcc4a89c2315f66e3c6a90043b8d4c8f02c06800896
|
7
|
+
data.tar.gz: 44112006eccf4dc66800c719886dcc86b3f3c71755b927321a3bd092bb59ea01f35fe97ad4f38baa0d2d315962aee7dde5d2d3375eb48e4353bc931adef0fdfc
|
data/.gitignore
CHANGED
@@ -1,19 +1,6 @@
|
|
1
1
|
*.gem
|
2
|
-
*.rbc
|
3
|
-
.bundle
|
4
|
-
.config
|
5
|
-
.yardoc
|
6
2
|
Gemfile.lock
|
7
|
-
InstalledFiles
|
8
|
-
_yardoc
|
9
3
|
coverage
|
10
|
-
doc/
|
11
|
-
lib/bundler/man
|
12
|
-
pkg
|
13
|
-
rdoc
|
14
|
-
spec/reports
|
15
|
-
test/tmp
|
16
|
-
test/version_tmp
|
17
|
-
tmp
|
18
4
|
|
19
|
-
spec/integrations/support/fanart_api.rb
|
5
|
+
spec/integrations/support/fanart_api.rb
|
6
|
+
spec/support/api_key.rb
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
## 0.3.0 (January 25, 2015)
|
2
|
+
|
3
|
+
- use ov gem for multimethod
|
4
|
+
- fix test for rspec 3 syntax
|
5
|
+
- add more tests
|
6
|
+
|
7
|
+
## 0.2.1 (September 3, 2014)
|
8
|
+
|
9
|
+
- fix gemspec dependency
|
10
|
+
|
11
|
+
## 0.2.0 (July 18, 2014)
|
12
|
+
|
13
|
+
- use APIv3
|
14
|
+
|
15
|
+
## 0.1.3 (June 28, 2014)
|
16
|
+
|
17
|
+
- fix for default options
|
18
|
+
|
19
|
+
## 0.1.2 (June 28, 2014)
|
20
|
+
|
21
|
+
- refactored
|
22
|
+
- replaced HTTParty by Faraday
|
23
|
+
|
24
|
+
## 0.0.2 (December 17, 2013)
|
25
|
+
|
26
|
+
- little performance improvement
|
27
|
+
- used uri_template for better way to format uri and map variables
|
28
|
+
|
29
|
+
## 0.0.1 (December 15, 2013)
|
30
|
+
|
31
|
+
First release with HTTParty
|
data/README.md
CHANGED
@@ -1,63 +1,96 @@
|
|
1
|
-
[](https://travis-ci.org/tvapi/fanart_api)
|
2
|
+
[](https://gemnasium.com/tvapi/fanart_api)
|
3
|
+
[](https://codeclimate.com/github/tvapi/fanart_api)
|
4
|
+
[](https://coveralls.io/r/tvapi/fanart_api)
|
5
5
|
[](http://badge.fury.io/rb/fanart_api)
|
6
6
|
|
7
7
|
# FanartApi
|
8
8
|
|
9
|
-
|
9
|
+
fanart_api is a simple ruby client for accessing TV shows information from the fanart.tv API.
|
10
10
|
|
11
|
-
|
12
|
-
fanart.tv APIv3 - FanartApi gem v0.2.x (from v0.2.0)
|
11
|
+
## Installation
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
You can add it to your Gemfile with:
|
13
|
+
With Bundler:
|
17
14
|
|
18
15
|
```ruby
|
19
|
-
gem '
|
16
|
+
gem 'thetvdb_api'
|
20
17
|
```
|
21
18
|
|
22
|
-
## How to use
|
23
|
-
|
24
|
-
There is one entry point, in initialize you can past hash with api_key value, or leave empty:
|
25
|
-
|
26
19
|
```ruby
|
27
|
-
|
20
|
+
$ bundle install
|
28
21
|
```
|
29
22
|
|
30
|
-
|
23
|
+
Otherwhise:
|
31
24
|
|
32
25
|
```ruby
|
33
|
-
|
26
|
+
$ gem install thetvdb_api
|
34
27
|
```
|
35
28
|
|
36
|
-
##
|
29
|
+
## How to use
|
37
30
|
|
38
|
-
|
31
|
+
You have two way for access to api:
|
39
32
|
|
40
33
|
```ruby
|
41
|
-
client.
|
42
|
-
client.movie.latest(date: 1...)
|
34
|
+
client = FanartApi::Client.new(api_key: '...')
|
43
35
|
```
|
36
|
+
```ruby
|
37
|
+
client = FanartApi::Client.new(api_key: '...', proxy_url: '...')
|
38
|
+
client.movie # => #<FanartApi::Movie>
|
39
|
+
client.music # => #<FanartApi::Music>
|
40
|
+
client.tv # => #<FanartApi::Tv>
|
41
|
+
```
|
42
|
+
|
43
|
+
* II case (direct access to api class, many entry points)
|
44
44
|
|
45
|
-
|
45
|
+
Language attribute is required
|
46
46
|
|
47
47
|
```ruby
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
client.music.latest(date: 1...)
|
48
|
+
ThetvdbApi::Actor.new(api_key: '...')
|
49
|
+
ThetvdbApi::Banner.new(api_key: '...')
|
50
|
+
ThetvdbApi::Episode.new(api_key: '...')
|
52
51
|
```
|
53
52
|
|
54
|
-
Tv API
|
55
|
-
|
56
53
|
```ruby
|
57
|
-
|
58
|
-
|
54
|
+
ThetvdbApi::Actor.new(api_key: '...', proxy_url: '...')
|
55
|
+
ThetvdbApi::Banner.new(api_key: '...', proxy_url: '...')
|
56
|
+
ThetvdbApi::Episode.new(api_key: '...', proxy_url: '...')
|
59
57
|
```
|
60
58
|
|
59
|
+
## Methods
|
60
|
+
|
61
|
+
For all methods you can pass hash attributes or multiple attributes specified in method comment.
|
62
|
+
|
63
|
+
### Movie methods
|
64
|
+
|
65
|
+
For method attributes read https://github.com/tvapi/fanart_api/blob/master/lib/fanart_api/movie.rb
|
66
|
+
|
67
|
+
* find
|
68
|
+
* find_url
|
69
|
+
* latest
|
70
|
+
* latest_url
|
71
|
+
|
72
|
+
### Music methods
|
73
|
+
|
74
|
+
For method attributes read https://github.com/tvapi/fanart_api/blob/master/lib/fanart_api/music.rb
|
75
|
+
|
76
|
+
* artist
|
77
|
+
* artist_url
|
78
|
+
* album
|
79
|
+
* album_url
|
80
|
+
* label
|
81
|
+
* label_url
|
82
|
+
* latest
|
83
|
+
* latest_url
|
84
|
+
|
85
|
+
### Tv methods
|
86
|
+
|
87
|
+
For method attributes read https://github.com/tvapi/fanart_api/blob/master/lib/fanart_api/tv.rb
|
88
|
+
|
89
|
+
* find
|
90
|
+
* find_url
|
91
|
+
* latest
|
92
|
+
* latest_url
|
93
|
+
|
61
94
|
## Contributing
|
62
95
|
|
63
96
|
1. Fork it
|
data/fanart_api.gemspec
CHANGED
@@ -18,10 +18,12 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_runtime_dependency 'service_api', '0.0
|
21
|
+
spec.add_runtime_dependency 'service_api', '~> 0.1.0'
|
22
|
+
spec.add_runtime_dependency 'ov', '~> 0.1.0'
|
22
23
|
|
23
24
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
24
25
|
spec.add_development_dependency 'rake'
|
25
|
-
spec.add_development_dependency 'rspec', '
|
26
|
-
spec.add_development_dependency 'coveralls', '
|
26
|
+
spec.add_development_dependency 'rspec', '~> 3.1.0'
|
27
|
+
spec.add_development_dependency 'coveralls', '~> 0.7'
|
28
|
+
spec.add_development_dependency 'awesome_print', '~> 1.6.0'
|
27
29
|
end
|
data/lib/fanart_api.rb
CHANGED
data/lib/fanart_api/base.rb
CHANGED
@@ -4,7 +4,7 @@ class FanartApi::Base
|
|
4
4
|
include ServiceApi::BaseFaraday
|
5
5
|
|
6
6
|
def api_key_options
|
7
|
-
{ api_key: @
|
7
|
+
{ api_key: @config[:api_key] }
|
8
8
|
end
|
9
9
|
|
10
10
|
def path_with_params(path, options)
|
@@ -26,10 +26,10 @@ class FanartApi::Base
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def base_url
|
29
|
-
if @
|
30
|
-
|
29
|
+
if @config[:proxy_url]
|
30
|
+
@config[:proxy_url]
|
31
31
|
else
|
32
|
-
'http://
|
32
|
+
'http://webservice.fanart.tv/v3/'
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
data/lib/fanart_api/client.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
class FanartApi::Client
|
2
|
-
attr_reader :
|
2
|
+
attr_reader :config
|
3
3
|
|
4
|
-
def initialize(
|
5
|
-
@
|
4
|
+
def initialize(config = {})
|
5
|
+
@config = config
|
6
6
|
|
7
|
-
@
|
7
|
+
@config[:adapter] ||= :net_http
|
8
8
|
end
|
9
9
|
|
10
10
|
def movie
|
11
|
-
@movie ||= FanartApi::Movie.new(
|
11
|
+
@movie ||= FanartApi::Movie.new(config)
|
12
12
|
end
|
13
13
|
|
14
14
|
def music
|
15
|
-
@music ||= FanartApi::Music.new(
|
15
|
+
@music ||= FanartApi::Music.new(config)
|
16
16
|
end
|
17
17
|
|
18
18
|
def tv
|
19
|
-
@tv ||= FanartApi::Tv.new(
|
19
|
+
@tv ||= FanartApi::Tv.new(config)
|
20
20
|
end
|
21
21
|
end
|
data/lib/fanart_api/movie.rb
CHANGED
@@ -1,18 +1,110 @@
|
|
1
|
-
# documentation: http://fanart.tv/api-docs/movie-api
|
2
1
|
class FanartApi::Movie < FanartApi::Base
|
3
|
-
|
2
|
+
include Ov
|
3
|
+
|
4
|
+
# Find specific movie data.
|
5
|
+
#
|
6
|
+
# access: FREE
|
7
|
+
# param:
|
8
|
+
# find(1234)
|
9
|
+
# output: Faraday::Response instance with Hash body
|
10
|
+
# example: http://docs.fanarttv.apiary.io/#movies
|
11
|
+
let :find, Any do |id|
|
12
|
+
find(id: id)
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
# Find specific movie data.
|
17
|
+
#
|
18
|
+
# access: FREE
|
19
|
+
# param:
|
20
|
+
# find(id: 1234)
|
21
|
+
# output: Faraday::Response instance with Hash body
|
22
|
+
# example: http://docs.fanarttv.apiary.io/#movies
|
23
|
+
let :find, Hash do |options|
|
4
24
|
find_path_with_params(options).get
|
5
25
|
end
|
6
26
|
|
7
|
-
|
27
|
+
# Find specific movie data - return only url.
|
28
|
+
#
|
29
|
+
# access: FREE
|
30
|
+
# param:
|
31
|
+
# find_url(1234)
|
32
|
+
# output: url string
|
33
|
+
let :find_url, Any do |id|
|
34
|
+
find_url(id: id)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Find specific movie data - return only url.
|
38
|
+
#
|
39
|
+
# access: FREE
|
40
|
+
# param:
|
41
|
+
# find_url(id: 1234)
|
42
|
+
# output: url string
|
43
|
+
let :find_url, Hash do |options|
|
8
44
|
find_path_with_params(options).url
|
9
45
|
end
|
10
46
|
|
11
|
-
|
47
|
+
# Get latest movies data.
|
48
|
+
#
|
49
|
+
# access: FREE
|
50
|
+
# param:
|
51
|
+
# latest
|
52
|
+
# output: Faraday::Response instance with Array body
|
53
|
+
# example: http://docs.fanarttv.apiary.io/#movies
|
54
|
+
let :latest do |date|
|
55
|
+
latest({})
|
56
|
+
end
|
57
|
+
|
58
|
+
# Get latest movies data.
|
59
|
+
#
|
60
|
+
# access: FREE
|
61
|
+
# param:
|
62
|
+
# latest(1234)
|
63
|
+
# output: Faraday::Response instance with Array body
|
64
|
+
# example: http://docs.fanarttv.apiary.io/#movies
|
65
|
+
let :latest, Any do |date|
|
66
|
+
latest(date: date)
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
# Get latest movies data.
|
71
|
+
#
|
72
|
+
# access: FREE
|
73
|
+
# param:
|
74
|
+
# latest(date: 1234)
|
75
|
+
# output: Faraday::Response instance with Array body
|
76
|
+
# example: http://docs.fanarttv.apiary.io/#movies
|
77
|
+
let :latest, Hash do |options|
|
12
78
|
latest_path_with_params(options).get
|
13
79
|
end
|
14
80
|
|
15
|
-
|
81
|
+
# Get latest movies data - return only url.
|
82
|
+
#
|
83
|
+
# access: FREE
|
84
|
+
# param:
|
85
|
+
# latest_url
|
86
|
+
# output: url string
|
87
|
+
let :latest_url do |date|
|
88
|
+
latest_url({})
|
89
|
+
end
|
90
|
+
|
91
|
+
# Get latest movies data - return only url.
|
92
|
+
#
|
93
|
+
# access: FREE
|
94
|
+
# param:
|
95
|
+
# latest_url(1234)
|
96
|
+
# output: url string
|
97
|
+
let :latest_url, Any do |date|
|
98
|
+
latest_url(date: date)
|
99
|
+
end
|
100
|
+
|
101
|
+
# Get latest movies data - return only url.
|
102
|
+
#
|
103
|
+
# access: FREE
|
104
|
+
# param:
|
105
|
+
# latest_url(date: 1234)
|
106
|
+
# output: url string
|
107
|
+
let :latest_url, Hash do |options|
|
16
108
|
latest_path_with_params(options).url
|
17
109
|
end
|
18
110
|
|
data/lib/fanart_api/music.rb
CHANGED
@@ -1,34 +1,192 @@
|
|
1
|
-
# documentation: http://fanart.tv/api-docs/music-api
|
2
1
|
class FanartApi::Music < FanartApi::Base
|
3
|
-
|
2
|
+
include Ov
|
3
|
+
|
4
|
+
# Find specific artist data.
|
5
|
+
#
|
6
|
+
# access: FREE
|
7
|
+
# param:
|
8
|
+
# artist(1234)
|
9
|
+
# output: Faraday::Response instance with Hash body
|
10
|
+
# example: http://docs.fanarttv.apiary.io/#music
|
11
|
+
let :artist, Any do |id|
|
12
|
+
artist(id: id)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Find specific artist data.
|
16
|
+
#
|
17
|
+
# access: FREE
|
18
|
+
# param:
|
19
|
+
# artist(id: 1234)
|
20
|
+
# output: Faraday::Response instance with Hash body
|
21
|
+
# example: http://docs.fanarttv.apiary.io/#music
|
22
|
+
let :artist, Hash do |options|
|
4
23
|
artist_path_with_params(options).get
|
5
24
|
end
|
6
25
|
|
7
|
-
|
26
|
+
# Find specific artist data - return only url.
|
27
|
+
#
|
28
|
+
# access: FREE
|
29
|
+
# param:
|
30
|
+
# artist_url(1234)
|
31
|
+
# output: url string
|
32
|
+
let :artist_url, Any do |id|
|
33
|
+
artist_url(id: id)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Find specific artist data - return only url.
|
37
|
+
#
|
38
|
+
# access: FREE
|
39
|
+
# param:
|
40
|
+
# artist_url(id: 1234)
|
41
|
+
# output: url string
|
42
|
+
let :artist_url, Hash do |options|
|
8
43
|
artist_path_with_params(options).url
|
9
44
|
end
|
10
45
|
|
11
|
-
|
46
|
+
# Find specific album data.
|
47
|
+
#
|
48
|
+
# access: FREE
|
49
|
+
# param:
|
50
|
+
# album(1234)
|
51
|
+
# output: Faraday::Response instance with Hash body
|
52
|
+
# example: http://docs.fanarttv.apiary.io/#music
|
53
|
+
let :album, Any do |id|
|
54
|
+
album(id: id)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Find specific album data.
|
58
|
+
#
|
59
|
+
# access: FREE
|
60
|
+
# param:
|
61
|
+
# album(id: 1234)
|
62
|
+
# output: Faraday::Response instance with Hash body
|
63
|
+
# example: http://docs.fanarttv.apiary.io/#music
|
64
|
+
let :album, Hash do |options|
|
12
65
|
album_path_with_params(options).get
|
13
66
|
end
|
14
67
|
|
15
|
-
|
68
|
+
# Find specific album data - return only url.
|
69
|
+
#
|
70
|
+
# access: FREE
|
71
|
+
# param:
|
72
|
+
# album_url(1234)
|
73
|
+
# output: url string
|
74
|
+
let :album_url, Any do |id|
|
75
|
+
album_url(id: id)
|
76
|
+
end
|
77
|
+
|
78
|
+
# Find specific album data - return only url.
|
79
|
+
#
|
80
|
+
# access: FREE
|
81
|
+
# param:
|
82
|
+
# album_url(id: 1234)
|
83
|
+
# output: url string
|
84
|
+
let :album_url, Hash do |options|
|
16
85
|
album_path_with_params(options).url
|
17
86
|
end
|
18
87
|
|
19
|
-
|
88
|
+
# Find specific label data.
|
89
|
+
#
|
90
|
+
# access: FREE
|
91
|
+
# param:
|
92
|
+
# label(1234)
|
93
|
+
# output: Faraday::Response instance with Hash body
|
94
|
+
# example: http://docs.fanarttv.apiary.io/#music
|
95
|
+
let :label, Any do |id|
|
96
|
+
label(id: id)
|
97
|
+
end
|
98
|
+
|
99
|
+
# Find specific label data.
|
100
|
+
#
|
101
|
+
# access: FREE
|
102
|
+
# param:
|
103
|
+
# label(id: 1234)
|
104
|
+
# output: Faraday::Response instance with Hash body
|
105
|
+
# example: http://docs.fanarttv.apiary.io/#music
|
106
|
+
let :label, Hash do |options|
|
20
107
|
label_path_with_params(options).get
|
21
108
|
end
|
22
109
|
|
23
|
-
|
110
|
+
# Find specific label data - return only url.
|
111
|
+
#
|
112
|
+
# access: FREE
|
113
|
+
# param:
|
114
|
+
# label_url(1234)
|
115
|
+
# output: url string
|
116
|
+
let :label_url, Any do |id|
|
117
|
+
label_url(id: id)
|
118
|
+
end
|
119
|
+
|
120
|
+
# Find specific label data - return only url.
|
121
|
+
#
|
122
|
+
# access: FREE
|
123
|
+
# param:
|
124
|
+
# label_url(id: 1234)
|
125
|
+
# output: url string
|
126
|
+
let :label_url, Hash do |options|
|
24
127
|
label_path_with_params(options).url
|
25
128
|
end
|
26
129
|
|
27
|
-
|
130
|
+
# Get latest artists data.
|
131
|
+
#
|
132
|
+
# access: FREE
|
133
|
+
# param:
|
134
|
+
# latest
|
135
|
+
# output: Faraday::Response instance with Array body
|
136
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
137
|
+
let :latest do |date|
|
138
|
+
latest({})
|
139
|
+
end
|
140
|
+
|
141
|
+
# Get latest artists data.
|
142
|
+
#
|
143
|
+
# access: FREE
|
144
|
+
# param:
|
145
|
+
# latest(1234)
|
146
|
+
# output: Faraday::Response instance with Array body
|
147
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
148
|
+
let :latest, Any do |date|
|
149
|
+
latest(date: date)
|
150
|
+
end
|
151
|
+
|
152
|
+
# Get latest artists data.
|
153
|
+
#
|
154
|
+
# access: FREE
|
155
|
+
# param:
|
156
|
+
# latest(date: 1234)
|
157
|
+
# output: Faraday::Response instance with Array body
|
158
|
+
# example: http://docs.fanarttv.apiary.io/#tv
|
159
|
+
let :latest, Hash do |options|
|
28
160
|
latest_path_with_params(options).get
|
29
161
|
end
|
30
162
|
|
31
|
-
|
163
|
+
# Get latest artists data - return only url.
|
164
|
+
#
|
165
|
+
# access: FREE
|
166
|
+
# param:
|
167
|
+
# latest_url
|
168
|
+
# output: url string
|
169
|
+
let :latest_url do |date|
|
170
|
+
latest_url({})
|
171
|
+
end
|
172
|
+
|
173
|
+
# Get latest artists data - return only url.
|
174
|
+
#
|
175
|
+
# access: FREE
|
176
|
+
# param:
|
177
|
+
# latest_url(1234)
|
178
|
+
# output: url string
|
179
|
+
let :latest_url, Any do |date|
|
180
|
+
latest_url(date: date)
|
181
|
+
end
|
182
|
+
|
183
|
+
# Get latest artists data - return only url.
|
184
|
+
#
|
185
|
+
# access: FREE
|
186
|
+
# param:
|
187
|
+
# latest_url(date: 1234)
|
188
|
+
# output: url string
|
189
|
+
let :latest_url, Hash do |options|
|
32
190
|
latest_path_with_params(options).url
|
33
191
|
end
|
34
192
|
|