tvdb_party 0.6.0 → 0.6.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.
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/lib/tvdb_party/episode.rb +9 -3
- data/lib/tvdb_party/httparty_icebox.rb +2 -2
- data/lib/tvdb_party/search.rb +27 -4
- data/lib/tvdb_party/series.rb +19 -15
- data/tvdb_party.gemspec +20 -25
- metadata +8 -10
- data/.gitignore +0 -5
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.1
|
data/lib/tvdb_party/episode.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
module TvdbParty
|
2
2
|
class Episode
|
3
|
+
attr_reader :client
|
3
4
|
attr_accessor :id, :season_number, :number, :name, :overview, :air_date, :thumb, :guest_stars, :director, :writer
|
4
|
-
|
5
|
-
def initialize(options={})
|
5
|
+
|
6
|
+
def initialize(client, options={})
|
7
|
+
@client = client
|
6
8
|
@id = options["id"]
|
7
9
|
@season_number = options["SeasonNumber"]
|
8
10
|
@number = options["EpisodeNumber"]
|
@@ -11,7 +13,7 @@ module TvdbParty
|
|
11
13
|
@thumb = "http://thetvdb.com/banners/" + options["filename"] if options["filename"].to_s != ""
|
12
14
|
@director = options["Director"]
|
13
15
|
@writer = options["Writer"]
|
14
|
-
|
16
|
+
@series_id = options["seriesid"]
|
15
17
|
if options["GuestStars"]
|
16
18
|
@guest_stars = options["GuestStars"][1..-1].split("|")
|
17
19
|
else
|
@@ -24,5 +26,9 @@ module TvdbParty
|
|
24
26
|
puts 'invalid date'
|
25
27
|
end
|
26
28
|
end
|
29
|
+
|
30
|
+
def series
|
31
|
+
client.get_series_by_id(@series_id)
|
32
|
+
end
|
27
33
|
end
|
28
34
|
end
|
@@ -207,11 +207,11 @@ module HTTParty #:nodoc:
|
|
207
207
|
end
|
208
208
|
def set(key, value)
|
209
209
|
Cache.logger.info("Cache: set (#{key})")
|
210
|
-
File.open( @path.join(key), 'w' ) { |file|
|
210
|
+
File.open( @path.join(key), 'w' ) { |file| Marshal.dump(value, file) }
|
211
211
|
true
|
212
212
|
end
|
213
213
|
def get(key)
|
214
|
-
data = Marshal.load(File.
|
214
|
+
data = Marshal.load(File.new(@path.join(key)))
|
215
215
|
Cache.logger.info("Cache: #{data.nil? ? "miss" : "hit"} (#{key})")
|
216
216
|
data
|
217
217
|
end
|
data/lib/tvdb_party/search.rb
CHANGED
@@ -4,18 +4,18 @@ module TvdbParty
|
|
4
4
|
include HTTParty::Icebox
|
5
5
|
attr_accessor :language
|
6
6
|
cache :store => 'file', :timeout => 120, :location => Dir.tmpdir
|
7
|
-
|
7
|
+
|
8
8
|
base_uri 'www.thetvdb.com/api'
|
9
9
|
|
10
10
|
def initialize(the_api_key, language = 'en')
|
11
11
|
@api_key = the_api_key
|
12
12
|
@language = language
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def search(series_name)
|
16
16
|
response = self.class.get("/GetSeries.php", {:query => {:seriesname => series_name, :language => @language}}).parsed_response
|
17
17
|
return [] unless response["Data"]
|
18
|
-
|
18
|
+
|
19
19
|
case response["Data"]["Series"]
|
20
20
|
when Array
|
21
21
|
response["Data"]["Series"]
|
@@ -28,22 +28,45 @@ module TvdbParty
|
|
28
28
|
|
29
29
|
def get_series_by_id(series_id, language = self.language)
|
30
30
|
response = self.class.get("/#{@api_key}/series/#{series_id}/#{language}.xml").parsed_response
|
31
|
+
|
31
32
|
if response["Data"] && response["Data"]["Series"]
|
32
33
|
Series.new(self, response["Data"]["Series"])
|
33
34
|
else
|
34
35
|
nil
|
35
36
|
end
|
36
37
|
end
|
38
|
+
|
39
|
+
def get_episode_by_id(episode_id, language = self.language)
|
40
|
+
response = self.class.get("/#{@api_key}/episodes/#{episode_id}/#{language}.xml").parsed_response
|
41
|
+
if response["Data"] && response["Data"]["Episode"]
|
42
|
+
Episode.new(self, response["Data"]["Episode"])
|
43
|
+
else
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
end
|
37
47
|
|
38
48
|
def get_episode(series, season_number, episode_number, language = self.language)
|
39
49
|
response = self.class.get("/#{@api_key}/series/#{series.id}/default/#{season_number}/#{episode_number}/#{language}.xml").parsed_response
|
40
50
|
if response["Data"] && response["Data"]["Episode"]
|
41
|
-
Episode.new(response["Data"]["Episode"])
|
51
|
+
Episode.new(self, response["Data"]["Episode"])
|
42
52
|
else
|
43
53
|
nil
|
44
54
|
end
|
45
55
|
end
|
46
56
|
|
57
|
+
def get_all_episodes(series, language = self.language)
|
58
|
+
response = self.class.get("/#{@api_key}/series/#{series.id}/all/#{language}.xml").parsed_response
|
59
|
+
return [] unless response["Data"] && response["Data"]["Episode"]
|
60
|
+
case response["Data"]["Episode"]
|
61
|
+
when Array
|
62
|
+
response["Data"]["Episode"].map{|result| Episode.new(result)}
|
63
|
+
when Hash
|
64
|
+
[Episode.new(response["Data"]["Episode"])]
|
65
|
+
else
|
66
|
+
[]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
47
70
|
def get_actors(series)
|
48
71
|
response = self.class.get("/#{@api_key}/series/#{series.id}/actors.xml").parsed_response
|
49
72
|
if response["Actors"] && response["Actors"]["Actor"]
|
data/lib/tvdb_party/series.rb
CHANGED
@@ -2,40 +2,40 @@ module TvdbParty
|
|
2
2
|
class Series
|
3
3
|
attr_reader :client
|
4
4
|
attr_accessor :id, :name, :overview, :seasons, :first_aired, :genres, :network, :rating, :runtime,
|
5
|
-
:actors, :banners
|
6
|
-
|
5
|
+
:actors, :banners, :air_time
|
6
|
+
|
7
7
|
def initialize(client, options={})
|
8
8
|
@client = client
|
9
|
-
|
10
9
|
@id = options["id"]
|
11
10
|
@name = options["SeriesName"]
|
12
11
|
@overview = options["Overview"]
|
13
12
|
@network = options["Network"]
|
14
13
|
@runtime = options["Runtime"]
|
15
|
-
|
14
|
+
@air_time = options['Airs_Time'] if options['Airs_Time']
|
15
|
+
|
16
16
|
if options["Genre"]
|
17
17
|
@genres = options["Genre"][1..-1].split("|")
|
18
18
|
else
|
19
19
|
@genres = []
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
if options["Rating"] && options["Rating"].size > 0
|
23
23
|
@rating = options["Rating"].to_f
|
24
24
|
else
|
25
25
|
@rating = 0
|
26
26
|
end
|
27
|
-
|
28
|
-
begin
|
27
|
+
|
28
|
+
begin
|
29
29
|
@first_aired = Date.parse(options["FirstAired"])
|
30
30
|
rescue
|
31
31
|
puts 'invalid date'
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
def get_episode(season_number, episode_number)
|
36
36
|
client.get_episode(self, season_number, episode_number)
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def posters(language)
|
40
40
|
banners.select{|b| b.banner_type == 'poster' && b.language == language}
|
41
41
|
end
|
@@ -55,22 +55,26 @@ module TvdbParty
|
|
55
55
|
def seasonwide_posters(season_number, language)
|
56
56
|
banners.select{|b| b.banner_type == 'season' && b.banner_type2 == 'seasonwide' && b.season == season_number.to_s && b.language == language}
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
def banners
|
60
|
-
@banners ||= client.get_banners(self)
|
60
|
+
@banners ||= client.get_banners(self)
|
61
61
|
end
|
62
62
|
|
63
63
|
def seasons
|
64
|
-
@seasons ||= client.get_seasons(self)
|
64
|
+
@seasons ||= client.get_seasons(self)
|
65
|
+
end
|
66
|
+
|
67
|
+
def episodes
|
68
|
+
@episodes ||= client.get_all_episodes(self)
|
65
69
|
end
|
66
70
|
|
67
71
|
def actors
|
68
|
-
@actors ||= client.get_actors(self)
|
72
|
+
@actors ||= client.get_actors(self)
|
69
73
|
end
|
70
|
-
|
74
|
+
|
71
75
|
def season(season_number)
|
72
76
|
seasons.detect{|s| s.number == season_number}
|
73
77
|
end
|
74
|
-
|
78
|
+
|
75
79
|
end
|
76
80
|
end
|
data/tvdb_party.gemspec
CHANGED
@@ -1,48 +1,42 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{tvdb_party}
|
8
|
-
s.version = "0.6.
|
8
|
+
s.version = "0.6.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jon Maddox"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-10-11}
|
13
13
|
s.description = %q{Simple Ruby library to talk to thetvdb.com's api}
|
14
14
|
s.email = %q{jon@mustacheinc.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
17
|
+
"README.textile"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
"tvdb_party.gemspec"
|
21
|
+
"LICENSE",
|
22
|
+
"README.textile",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"lib/tvdb_party.rb",
|
26
|
+
"lib/tvdb_party/actor.rb",
|
27
|
+
"lib/tvdb_party/banner.rb",
|
28
|
+
"lib/tvdb_party/episode.rb",
|
29
|
+
"lib/tvdb_party/httparty_icebox.rb",
|
30
|
+
"lib/tvdb_party/search.rb",
|
31
|
+
"lib/tvdb_party/series.rb",
|
32
|
+
"test/test_helper.rb",
|
33
|
+
"test/tvdb_party_test.rb",
|
34
|
+
"tvdb_party.gemspec"
|
36
35
|
]
|
37
36
|
s.homepage = %q{http://github.com/maddox/tvdb_party}
|
38
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
39
37
|
s.require_paths = ["lib"]
|
40
38
|
s.rubygems_version = %q{1.3.7}
|
41
39
|
s.summary = %q{Simple Ruby library to talk to thetvdb.com's api}
|
42
|
-
s.test_files = [
|
43
|
-
"test/test_helper.rb",
|
44
|
-
"test/tvdb_party_test.rb"
|
45
|
-
]
|
46
40
|
|
47
41
|
if s.respond_to? :specification_version then
|
48
42
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
@@ -60,3 +54,4 @@ Gem::Specification.new do |s|
|
|
60
54
|
s.add_dependency(%q<httparty>, [">= 0.6.1"])
|
61
55
|
end
|
62
56
|
end
|
57
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tvdb_party
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 1
|
10
|
+
version: 0.6.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jon Maddox
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-10-11 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -59,7 +59,6 @@ extra_rdoc_files:
|
|
59
59
|
- README.textile
|
60
60
|
files:
|
61
61
|
- .document
|
62
|
-
- .gitignore
|
63
62
|
- LICENSE
|
64
63
|
- README.textile
|
65
64
|
- Rakefile
|
@@ -79,8 +78,8 @@ homepage: http://github.com/maddox/tvdb_party
|
|
79
78
|
licenses: []
|
80
79
|
|
81
80
|
post_install_message:
|
82
|
-
rdoc_options:
|
83
|
-
|
81
|
+
rdoc_options: []
|
82
|
+
|
84
83
|
require_paths:
|
85
84
|
- lib
|
86
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -108,6 +107,5 @@ rubygems_version: 1.3.7
|
|
108
107
|
signing_key:
|
109
108
|
specification_version: 3
|
110
109
|
summary: Simple Ruby library to talk to thetvdb.com's api
|
111
|
-
test_files:
|
112
|
-
|
113
|
-
- test/tvdb_party_test.rb
|
110
|
+
test_files: []
|
111
|
+
|