jduff-tmdb_party 0.0.2
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/LICENSE +20 -0
- data/README.rdoc +40 -0
- data/Rakefile +59 -0
- data/VERSION.yml +4 -0
- data/lib/tmdb_party.rb +35 -0
- data/lib/tmdb_party/attributes.rb +52 -0
- data/lib/tmdb_party/category.rb +21 -0
- data/lib/tmdb_party/core_extensions.rb +18 -0
- data/lib/tmdb_party/image.rb +19 -0
- data/lib/tmdb_party/movie.rb +29 -0
- data/lib/tmdb_party/video.rb +19 -0
- data/test/fixtures/search.xml +104 -0
- data/test/fixtures/transformers.xml +353 -0
- data/test/test_helper.rb +32 -0
- data/test/tmdb_party/test_tmdb_party.rb +41 -0
- metadata +98 -0
data/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2009 John Duff
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
= tmdb_party
|
|
2
|
+
|
|
3
|
+
Simple ruby wrapper to themoviedb.org (http://api.themoviedb.org/2.0/docs/) using HTTParty
|
|
4
|
+
|
|
5
|
+
= usage:
|
|
6
|
+
sudo gem install jduff-tmdb_party
|
|
7
|
+
require 'tmdb_party'
|
|
8
|
+
|
|
9
|
+
= example:
|
|
10
|
+
|
|
11
|
+
@tmdb = TMDBParty::Base.new('key')
|
|
12
|
+
results = @tmdb.search('transformers')
|
|
13
|
+
|
|
14
|
+
results.length
|
|
15
|
+
# => 5
|
|
16
|
+
|
|
17
|
+
transformers = results.detect{|m| m.title == "Transformers"}
|
|
18
|
+
|
|
19
|
+
transformers.popularity
|
|
20
|
+
# => 31
|
|
21
|
+
transformers.score
|
|
22
|
+
# => 1.0
|
|
23
|
+
transformers.imdb
|
|
24
|
+
# => 'tt0418279'
|
|
25
|
+
|
|
26
|
+
# some attributes don't come back with the search result, they are lazily loaded on demand
|
|
27
|
+
transformers.homepage
|
|
28
|
+
# => "http://www.transformersmovie.com/"
|
|
29
|
+
transformers.trailer.url
|
|
30
|
+
# => "http://www.youtube.com/watch?v=eduwcuq1Exg"
|
|
31
|
+
|
|
32
|
+
transformers.categories.collect{|cat| cat.name}.include?("Adventure Film")
|
|
33
|
+
# => true
|
|
34
|
+
|
|
35
|
+
= what is themoviedb.org?
|
|
36
|
+
It's a movie database, kind of like IMDB except it's more of a community wiki. They also have an api that they're cool with people using. More on the api here: http://api.themoviedb.org/2.0/docs/
|
|
37
|
+
|
|
38
|
+
== Copyright
|
|
39
|
+
|
|
40
|
+
Copyright (c) 2009 John Duff. See LICENSE for details.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'rake'
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require 'jeweler'
|
|
6
|
+
Jeweler::Tasks.new do |gem|
|
|
7
|
+
gem.name = "tmdb_party"
|
|
8
|
+
gem.summary = %Q{TODO}
|
|
9
|
+
gem.email = "duff.john@gmail.com"
|
|
10
|
+
gem.homepage = "http://github.com/jduff/tmdb_party"
|
|
11
|
+
gem.authors = ["John Duff"]
|
|
12
|
+
gem.add_dependency('httparty', '>= 0.4.3')
|
|
13
|
+
|
|
14
|
+
gem.add_development_dependency('fakeweb')
|
|
15
|
+
gem.add_development_dependency('context')
|
|
16
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
|
17
|
+
end
|
|
18
|
+
rescue LoadError
|
|
19
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
require 'rake/testtask'
|
|
23
|
+
Rake::TestTask.new(:test) do |test|
|
|
24
|
+
test.libs << 'lib' << 'test'
|
|
25
|
+
test.pattern = 'test/**/*_test.rb'
|
|
26
|
+
test.verbose = true
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
begin
|
|
30
|
+
require 'rcov/rcovtask'
|
|
31
|
+
Rcov::RcovTask.new do |test|
|
|
32
|
+
test.libs << 'test'
|
|
33
|
+
test.pattern = 'test/**/*_test.rb'
|
|
34
|
+
test.verbose = true
|
|
35
|
+
end
|
|
36
|
+
rescue LoadError
|
|
37
|
+
task :rcov do
|
|
38
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
task :default => :test
|
|
44
|
+
|
|
45
|
+
require 'rake/rdoctask'
|
|
46
|
+
Rake::RDocTask.new do |rdoc|
|
|
47
|
+
if File.exist?('VERSION.yml')
|
|
48
|
+
config = YAML.load(File.read('VERSION.yml'))
|
|
49
|
+
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
|
50
|
+
else
|
|
51
|
+
version = ""
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
55
|
+
rdoc.title = "tmdb_party #{version}"
|
|
56
|
+
rdoc.rdoc_files.include('README*')
|
|
57
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
58
|
+
end
|
|
59
|
+
|
data/VERSION.yml
ADDED
data/lib/tmdb_party.rb
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
gem 'httparty'
|
|
2
|
+
require 'httparty'
|
|
3
|
+
require 'tmdb_party/core_extensions'
|
|
4
|
+
require 'tmdb_party/attributes'
|
|
5
|
+
require 'tmdb_party/video'
|
|
6
|
+
require 'tmdb_party/category'
|
|
7
|
+
require 'tmdb_party/image'
|
|
8
|
+
require 'tmdb_party/movie'
|
|
9
|
+
|
|
10
|
+
module TMDBParty
|
|
11
|
+
class Base
|
|
12
|
+
include HTTParty
|
|
13
|
+
base_uri 'http://api.themoviedb.org/2.0'
|
|
14
|
+
format :xml
|
|
15
|
+
|
|
16
|
+
def initialize(key)
|
|
17
|
+
self.class.default_params :api_key => key
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def search(query)
|
|
21
|
+
data = self.class.get('/Movie.search', :query=>{:title=>query})
|
|
22
|
+
data['results']['moviematches']['movie'].collect do |movie|
|
|
23
|
+
Movie.new(movie, self)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def imdb_lookup(id)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def get_info(id)
|
|
31
|
+
data = self.class.get('/Movie.getInfo', :query=>{:id=>id})
|
|
32
|
+
Movie.new(data['results']['moviematches']['movie'], self)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module TMDBParty
|
|
2
|
+
module Attributes
|
|
3
|
+
# based on http://github.com/nullstyle/ruby-satisfaction
|
|
4
|
+
|
|
5
|
+
def self.included(base)
|
|
6
|
+
base.class_eval do
|
|
7
|
+
extend ClassMethods
|
|
8
|
+
include InstanceMethods
|
|
9
|
+
attr_reader :attributes
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
module ClassMethods
|
|
14
|
+
def attributes(*names)
|
|
15
|
+
options = names.extract_options!
|
|
16
|
+
|
|
17
|
+
names.each do |name|
|
|
18
|
+
attribute name, options unless name.blank?
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def attribute(name, options)
|
|
23
|
+
options.replace({:type => 'nil', :lazy=>false}.merge(options))
|
|
24
|
+
raise "Name can't be empty" if name.blank?
|
|
25
|
+
|
|
26
|
+
lazy_load = "self.#{options[:lazy]} unless self.loaded?" if options[:lazy]
|
|
27
|
+
class_eval <<-EOS
|
|
28
|
+
def #{name}
|
|
29
|
+
#{lazy_load}
|
|
30
|
+
@#{name} ||= decode_raw_attribute(@attributes['#{name}'], #{options[:type]}) if @attributes
|
|
31
|
+
end
|
|
32
|
+
EOS
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
module InstanceMethods
|
|
38
|
+
def attributes=(value)
|
|
39
|
+
@attributes = value
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def loaded?
|
|
43
|
+
@loaded
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
def decode_raw_attribute(value, type)
|
|
48
|
+
type.respond_to?(:parse) ? type.parse(value) : value
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module TMDBParty
|
|
2
|
+
class Category
|
|
3
|
+
include Attributes
|
|
4
|
+
attributes :name, :url
|
|
5
|
+
|
|
6
|
+
def initialize(values)
|
|
7
|
+
self.attributes = values
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.parse(data)
|
|
11
|
+
data = data["category"]
|
|
12
|
+
if data.is_a?(Array)
|
|
13
|
+
data.collect do |category|
|
|
14
|
+
Category.new(category)
|
|
15
|
+
end
|
|
16
|
+
else
|
|
17
|
+
Category.new(data)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module TMDBParty
|
|
2
|
+
class Image
|
|
3
|
+
attr_reader :url
|
|
4
|
+
|
|
5
|
+
def initialize(url)
|
|
6
|
+
@url = url
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.parse(data)
|
|
10
|
+
if data.is_a?(Array)
|
|
11
|
+
data.collect do |url|
|
|
12
|
+
Image.new(url)
|
|
13
|
+
end
|
|
14
|
+
else
|
|
15
|
+
Image.new(data)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module TMDBParty
|
|
2
|
+
class Movie
|
|
3
|
+
include Attributes
|
|
4
|
+
attr_reader :tmdb
|
|
5
|
+
|
|
6
|
+
attributes :title, :short_overview, :id, :score, :imdb, :type, :url, :popularity, :alternative_title
|
|
7
|
+
attributes :release, :type=>DateTime
|
|
8
|
+
attributes :id, :type => Integer
|
|
9
|
+
attributes :popularity, :score, :type => Float
|
|
10
|
+
attributes :poster, :backdrop, :type => Image
|
|
11
|
+
|
|
12
|
+
attributes :homepage, :lazy => :get_info!
|
|
13
|
+
attributes :trailer, :lazy => :get_info!, :type=> Video
|
|
14
|
+
attributes :categories, :lazy => :get_info!, :type=> Category
|
|
15
|
+
|
|
16
|
+
def initialize(values, tmdb)
|
|
17
|
+
@tmdb = tmdb
|
|
18
|
+
self.attributes = values
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def get_info!
|
|
22
|
+
movie = tmdb.get_info(self.id)
|
|
23
|
+
@attributes.merge!(movie.attributes) if movie
|
|
24
|
+
@loaded = true
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module TMDBParty
|
|
2
|
+
class Video
|
|
3
|
+
attr_reader :url
|
|
4
|
+
|
|
5
|
+
def initialize(url)
|
|
6
|
+
@url = url
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.parse(data)
|
|
10
|
+
if data.is_a?(Array)
|
|
11
|
+
data.collect do |url|
|
|
12
|
+
Video.new(url)
|
|
13
|
+
end
|
|
14
|
+
else
|
|
15
|
+
Video.new(data)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<results for="transformers" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
|
|
3
|
+
<opensearch:Query searchTerms="transformers"/>
|
|
4
|
+
<opensearch:totalResults>5</opensearch:totalResults>
|
|
5
|
+
<moviematches>
|
|
6
|
+
<movie>
|
|
7
|
+
<score>1.0</score>
|
|
8
|
+
<popularity>31</popularity>
|
|
9
|
+
<title>Transformers</title>
|
|
10
|
+
<alternative_title>The Transformers</alternative_title>
|
|
11
|
+
<type>movie</type>
|
|
12
|
+
|
|
13
|
+
<id>1858</id>
|
|
14
|
+
<imdb>tt0418279</imdb>
|
|
15
|
+
<url>http://www.themoviedb.org/movie/1858</url>
|
|
16
|
+
<short_overview>The Earth is caught in the middle of an intergalactic war between two races of robots, the heroic Autobots and the evil Decepticons, which are able to change into a variety of objects, including cars, trucks, planes and other technological creations.</short_overview>
|
|
17
|
+
<release>2007-07-04</release>
|
|
18
|
+
<poster size="original">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab.jpg</poster>
|
|
19
|
+
<poster size="thumb">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab_thumb.jpg</poster>
|
|
20
|
+
<poster size="mid">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab_mid.jpg</poster>
|
|
21
|
+
<poster size="cover">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab_cover.jpg</poster>
|
|
22
|
+
|
|
23
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/1394/tt0418279-1.jpg</backdrop>
|
|
24
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/1394/tt0418279-1_poster.jpg</backdrop>
|
|
25
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/1394/tt0418279-1_thumb.jpg</backdrop>
|
|
26
|
+
</movie>
|
|
27
|
+
<movie>
|
|
28
|
+
<score>0.120507517597236</score>
|
|
29
|
+
<popularity>5</popularity>
|
|
30
|
+
<title>Transformers: Revenge of the Fallen</title>
|
|
31
|
+
<alternative_title>Transformers 2</alternative_title>
|
|
32
|
+
|
|
33
|
+
<type>movie</type>
|
|
34
|
+
<id>8373</id>
|
|
35
|
+
<imdb>tt1055369</imdb>
|
|
36
|
+
<url>http://www.themoviedb.org/movie/8373</url>
|
|
37
|
+
<short_overview></short_overview>
|
|
38
|
+
<release>2009-06-24</release>
|
|
39
|
+
<poster size="original">http://images.themoviedb.org/posters/11433/Transformers_2_v1.jpg</poster>
|
|
40
|
+
<poster size="mid">http://images.themoviedb.org/posters/11433/Transformers_2_v1_mid.jpg</poster>
|
|
41
|
+
<poster size="thumb">http://images.themoviedb.org/posters/11433/Transformers_2_v1_thumb.jpg</poster>
|
|
42
|
+
|
|
43
|
+
<poster size="cover">http://images.themoviedb.org/posters/11433/Transformers_2_v1_cover.jpg</poster>
|
|
44
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/19763/Transformers_2_v1_1920x1080.jpg</backdrop>
|
|
45
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/19763/Transformers_2_v1_1920x1080_poster.jpg</backdrop>
|
|
46
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/19763/Transformers_2_v1_1920x1080_thumb.jpg</backdrop>
|
|
47
|
+
</movie>
|
|
48
|
+
<movie>
|
|
49
|
+
<score>0.0291530167991967</score>
|
|
50
|
+
<popularity>2</popularity>
|
|
51
|
+
<title>Transformers</title>
|
|
52
|
+
<alternative_title></alternative_title>
|
|
53
|
+
|
|
54
|
+
<type>movie_series</type>
|
|
55
|
+
<id>8650</id>
|
|
56
|
+
<imdb></imdb>
|
|
57
|
+
<url>http://www.themoviedb.org/movie/8650</url>
|
|
58
|
+
<short_overview>The Transformers series follows the continuing battle between the Autobots and the Decepticons and ultimately, the triumph of good over evil.</short_overview>
|
|
59
|
+
<release>2009-06-24</release>
|
|
60
|
+
<poster size="cover">http://images.themoviedb.org/posters//transformers_cover.JPG</poster>
|
|
61
|
+
<poster size="cover">http://images.themoviedb.org/posters/35390/transformers_cover_thumb.JPG</poster>
|
|
62
|
+
<poster size="mid">http://images.themoviedb.org/posters/35390/transformers_cover_mid.JPG</poster>
|
|
63
|
+
|
|
64
|
+
<poster size="cover">http://images.themoviedb.org/posters/35390/transformers_cover_cover.JPG</poster>
|
|
65
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/37808/transformers_bg.jpg</backdrop>
|
|
66
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/37808/transformers_bg_thumb.jpg</backdrop>
|
|
67
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/37808/transformers_bg_poster.jpg</backdrop>
|
|
68
|
+
</movie>
|
|
69
|
+
<movie>
|
|
70
|
+
<score>0.0146628580052701</score>
|
|
71
|
+
<popularity>2</popularity>
|
|
72
|
+
<title>The Transformers (TV series)</title>
|
|
73
|
+
<alternative_title></alternative_title>
|
|
74
|
+
|
|
75
|
+
<type>series</type>
|
|
76
|
+
<id>1856</id>
|
|
77
|
+
<imdb></imdb>
|
|
78
|
+
<url>http://www.themoviedb.org/movie/1856</url>
|
|
79
|
+
<short_overview>Transformers is the popular animated television series staring a cast of giant robots who can transform themselves into different creatures, objects, or other robots. The show was a huge success in the USA and Japan, and produced a popular Transformer toy line.</short_overview>
|
|
80
|
+
<release></release>
|
|
81
|
+
</movie>
|
|
82
|
+
<movie>
|
|
83
|
+
<score>0.0146628580052701</score>
|
|
84
|
+
<popularity>2</popularity>
|
|
85
|
+
<title>The Transformers: The Movie</title>
|
|
86
|
+
|
|
87
|
+
<alternative_title></alternative_title>
|
|
88
|
+
<type>movie</type>
|
|
89
|
+
<id>1857</id>
|
|
90
|
+
<imdb>tt0092106</imdb>
|
|
91
|
+
<url>http://www.themoviedb.org/movie/1857</url>
|
|
92
|
+
<short_overview>The Transformers: The Movie is the animated film from 1986 based on the popular television series of the same name. The television series and the film were both directed by Nelson Shin.</short_overview>
|
|
93
|
+
<release>1986-08-08</release>
|
|
94
|
+
<poster size="original">http://images.themoviedb.org/posters/16658/TF_TM.jpg</poster>
|
|
95
|
+
<poster size="mid">http://images.themoviedb.org/posters/16658/TF_TM_mid.jpg</poster>
|
|
96
|
+
|
|
97
|
+
<poster size="thumb">http://images.themoviedb.org/posters/16658/TF_TM_thumb.jpg</poster>
|
|
98
|
+
<poster size="cover">http://images.themoviedb.org/posters/16658/TF_TM_cover.jpg</poster>
|
|
99
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/584/tt0092106.jpg</backdrop>
|
|
100
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/584/tt0092106_poster.jpg</backdrop>
|
|
101
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/584/tt0092106_thumb.jpg</backdrop>
|
|
102
|
+
</movie>
|
|
103
|
+
</moviematches>
|
|
104
|
+
</results>
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<results for="1858" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/">
|
|
3
|
+
<opensearch:Query searchTerms="1858"/>
|
|
4
|
+
<opensearch:totalResults>1</opensearch:totalResults>
|
|
5
|
+
<moviematches>
|
|
6
|
+
<movie>
|
|
7
|
+
<score>1.0</score>
|
|
8
|
+
<popularity>32</popularity>
|
|
9
|
+
<title>Transformers</title>
|
|
10
|
+
<alternative_title>The Transformers</alternative_title>
|
|
11
|
+
<type>movie</type>
|
|
12
|
+
|
|
13
|
+
<id>1858</id>
|
|
14
|
+
<imdb>tt0418279</imdb>
|
|
15
|
+
<url>http://www.themoviedb.org/movie/1858</url>
|
|
16
|
+
<short_overview>The Earth is caught in the middle of an intergalactic war between two races of robots, the heroic Autobots and the evil Decepticons, which are able to change into a variety of objects, including cars, trucks, planes and other technological creations.</short_overview>
|
|
17
|
+
<rating>7.56522</rating>
|
|
18
|
+
<release>2007-07-04</release>
|
|
19
|
+
<runtime>132</runtime>
|
|
20
|
+
<budget>150000000</budget>
|
|
21
|
+
<revenue>708226810</revenue>
|
|
22
|
+
|
|
23
|
+
<homepage>http://www.transformersmovie.com/</homepage>
|
|
24
|
+
<production_countries>
|
|
25
|
+
<country>
|
|
26
|
+
<name>United States of America</name>
|
|
27
|
+
<short_name>US</short_name>
|
|
28
|
+
<url>http://www.themoviedb.org/encyclopedia/country/223</url>
|
|
29
|
+
</country>
|
|
30
|
+
</production_countries>
|
|
31
|
+
<trailer source="youtube">http://www.youtube.com/watch?v=eduwcuq1Exg</trailer>
|
|
32
|
+
<poster size="original">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab.jpg</poster>
|
|
33
|
+
<poster size="thumb">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab_thumb.jpg</poster>
|
|
34
|
+
|
|
35
|
+
<poster size="mid">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab_mid.jpg</poster>
|
|
36
|
+
<poster size="cover">http://images.themoviedb.org/posters/937/Transformers_3d7ecdab_cover.jpg</poster>
|
|
37
|
+
<poster size="original">http://images.themoviedb.org/posters/941/Transformers_7f0d814e.jpg</poster>
|
|
38
|
+
<poster size="thumb">http://images.themoviedb.org/posters/941/Transformers_7f0d814e_thumb.jpg</poster>
|
|
39
|
+
<poster size="mid">http://images.themoviedb.org/posters/941/Transformers_7f0d814e_mid.jpg</poster>
|
|
40
|
+
<poster size="cover">http://images.themoviedb.org/posters/941/Transformers_7f0d814e_cover.jpg</poster>
|
|
41
|
+
<poster size="original">http://images.themoviedb.org/posters/945/Transformers_7394f415.jpg</poster>
|
|
42
|
+
<poster size="thumb">http://images.themoviedb.org/posters/945/Transformers_7394f415_thumb.jpg</poster>
|
|
43
|
+
<poster size="mid">http://images.themoviedb.org/posters/945/Transformers_7394f415_mid.jpg</poster>
|
|
44
|
+
|
|
45
|
+
<poster size="cover">http://images.themoviedb.org/posters/945/Transformers_7394f415_cover.jpg</poster>
|
|
46
|
+
<poster size="original">http://images.themoviedb.org/posters/949/Transformers_cd48d8bb.jpg</poster>
|
|
47
|
+
<poster size="thumb">http://images.themoviedb.org/posters/949/Transformers_cd48d8bb_thumb.jpg</poster>
|
|
48
|
+
<poster size="mid">http://images.themoviedb.org/posters/949/Transformers_cd48d8bb_mid.jpg</poster>
|
|
49
|
+
<poster size="cover">http://images.themoviedb.org/posters/949/Transformers_cd48d8bb_cover.jpg</poster>
|
|
50
|
+
<poster size="original">http://images.themoviedb.org/posters/7937/Transformers.jpg</poster>
|
|
51
|
+
<poster size="mid">http://images.themoviedb.org/posters/7937/Transformers_mid.jpg</poster>
|
|
52
|
+
<poster size="cover">http://images.themoviedb.org/posters/7937/Transformers_cover.jpg</poster>
|
|
53
|
+
|
|
54
|
+
<poster size="thumb">http://images.themoviedb.org/posters/7937/Transformers_thumb.jpg</poster>
|
|
55
|
+
<poster size="original">http://images.themoviedb.org/posters/30022/Transformers_v1.jpg</poster>
|
|
56
|
+
<poster size="cover">http://images.themoviedb.org/posters/30022/Transformers_v1_cover.jpg</poster>
|
|
57
|
+
<poster size="mid">http://images.themoviedb.org/posters/30022/Transformers_v1_mid.jpg</poster>
|
|
58
|
+
<poster size="thumb">http://images.themoviedb.org/posters/30022/Transformers_v1_thumb.jpg</poster>
|
|
59
|
+
<poster size="original">http://images.themoviedb.org/posters/30026/Transformers_v2.jpg</poster>
|
|
60
|
+
<poster size="cover">http://images.themoviedb.org/posters/30026/Transformers_v2_cover.jpg</poster>
|
|
61
|
+
<poster size="mid">http://images.themoviedb.org/posters/30026/Transformers_v2_mid.jpg</poster>
|
|
62
|
+
<poster size="thumb">http://images.themoviedb.org/posters/30026/Transformers_v2_thumb.jpg</poster>
|
|
63
|
+
|
|
64
|
+
<poster size="original">http://images.themoviedb.org/posters/30030/Transformers_v3.jpg</poster>
|
|
65
|
+
<poster size="cover">http://images.themoviedb.org/posters/30030/Transformers_v3_cover.jpg</poster>
|
|
66
|
+
<poster size="mid">http://images.themoviedb.org/posters/30030/Transformers_v3_mid.jpg</poster>
|
|
67
|
+
<poster size="thumb">http://images.themoviedb.org/posters/30030/Transformers_v3_thumb.jpg</poster>
|
|
68
|
+
<poster size="original">http://images.themoviedb.org/posters/30034/Transformers_v1.jpg</poster>
|
|
69
|
+
<poster size="cover">http://images.themoviedb.org/posters/30034/Transformers_v1_cover.jpg</poster>
|
|
70
|
+
<poster size="mid">http://images.themoviedb.org/posters/30034/Transformers_v1_mid.jpg</poster>
|
|
71
|
+
<poster size="thumb">http://images.themoviedb.org/posters/30034/Transformers_v1_thumb.jpg</poster>
|
|
72
|
+
|
|
73
|
+
<poster size="original">http://images.themoviedb.org/posters/30038/Transformers_v2.jpg</poster>
|
|
74
|
+
<poster size="cover">http://images.themoviedb.org/posters/30038/Transformers_v2_cover.jpg</poster>
|
|
75
|
+
<poster size="mid">http://images.themoviedb.org/posters/30038/Transformers_v2_mid.jpg</poster>
|
|
76
|
+
<poster size="thumb">http://images.themoviedb.org/posters/30038/Transformers_v2_thumb.jpg</poster>
|
|
77
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/1394/tt0418279-1.jpg</backdrop>
|
|
78
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/1394/tt0418279-1_poster.jpg</backdrop>
|
|
79
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/1394/tt0418279-1_thumb.jpg</backdrop>
|
|
80
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/2279/tt0418279.jpg</backdrop>
|
|
81
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/2279/tt0418279_poster.jpg</backdrop>
|
|
82
|
+
|
|
83
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/2279/tt0418279_thumb.jpg</backdrop>
|
|
84
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/8546/Transformers_2007_1920x1080.jpg</backdrop>
|
|
85
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/8546/Transformers_2007_1920x1080_thumb.jpg</backdrop>
|
|
86
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/8546/Transformers_2007_1920x1080_poster.jpg</backdrop>
|
|
87
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/15635/Transformers-fanart.jpg</backdrop>
|
|
88
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/15635/Transformers-fanart_thumb.jpg</backdrop>
|
|
89
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/15635/Transformers-fanart_poster.jpg</backdrop>
|
|
90
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/27158/Fox_Megan001a.jpg</backdrop>
|
|
91
|
+
|
|
92
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/27158/Fox_Megan001a_poster.jpg</backdrop>
|
|
93
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/27158/Fox_Megan001a_thumb.jpg</backdrop>
|
|
94
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/27161/Mikaela-Banes-transformers-71359_1920_1080.jpg</backdrop>
|
|
95
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/27161/Mikaela-Banes-transformers-71359_1920_1080_poster.jpg</backdrop>
|
|
96
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/27161/Mikaela-Banes-transformers-71359_1920_1080_thumb.jpg</backdrop>
|
|
97
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/34127/fanart.jpg</backdrop>
|
|
98
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/34127/fanart_poster.jpg</backdrop>
|
|
99
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/34127/fanart_thumb.jpg</backdrop>
|
|
100
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/34130/fanart2.jpg</backdrop>
|
|
101
|
+
|
|
102
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/34130/fanart2_thumb.jpg</backdrop>
|
|
103
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/34130/fanart2_poster.jpg</backdrop>
|
|
104
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/35204/Transformers_1.jpg</backdrop>
|
|
105
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/35204/Transformers_1_thumb.jpg</backdrop>
|
|
106
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/35204/Transformers_1_poster.jpg</backdrop>
|
|
107
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/35207/Transformers_2.jpg</backdrop>
|
|
108
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/35207/Transformers_2_thumb.jpg</backdrop>
|
|
109
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/35207/Transformers_2_poster.jpg</backdrop>
|
|
110
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/35219/Transformers_3.jpg</backdrop>
|
|
111
|
+
|
|
112
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/35219/Transformers_3_thumb.jpg</backdrop>
|
|
113
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/35219/Transformers_3_poster.jpg</backdrop>
|
|
114
|
+
<backdrop size="original">http://images.themoviedb.org/backdrops/35222/Transformers_4.jpg</backdrop>
|
|
115
|
+
<backdrop size="thumb">http://images.themoviedb.org/backdrops/35222/Transformers_4_thumb.jpg</backdrop>
|
|
116
|
+
<backdrop size="mid">http://images.themoviedb.org/backdrops/35222/Transformers_4_poster.jpg</backdrop>
|
|
117
|
+
<people>
|
|
118
|
+
<person job="director">
|
|
119
|
+
<name>Michael Bay</name>
|
|
120
|
+
<role></role>
|
|
121
|
+
<url>http://www.themoviedb.org/person/865</url>
|
|
122
|
+
|
|
123
|
+
</person>
|
|
124
|
+
<person job="executive_producer">
|
|
125
|
+
<name>Steven Spielberg</name>
|
|
126
|
+
<role></role>
|
|
127
|
+
<url>http://www.themoviedb.org/person/488</url>
|
|
128
|
+
</person>
|
|
129
|
+
<person job="producer">
|
|
130
|
+
<name>Tom DeSanto</name>
|
|
131
|
+
<role></role>
|
|
132
|
+
<url>http://www.themoviedb.org/person/10994</url>
|
|
133
|
+
</person>
|
|
134
|
+
<person job="producer">
|
|
135
|
+
<name>Don Murphy</name>
|
|
136
|
+
|
|
137
|
+
<role></role>
|
|
138
|
+
<url>http://www.themoviedb.org/person/3183</url>
|
|
139
|
+
</person>
|
|
140
|
+
<person job="producer">
|
|
141
|
+
<name>Lorenzo di Bonaventura</name>
|
|
142
|
+
<role></role>
|
|
143
|
+
<url>http://www.themoviedb.org/person/10952</url>
|
|
144
|
+
</person>
|
|
145
|
+
<person job="screenplay">
|
|
146
|
+
<name>Roberto Orci </name>
|
|
147
|
+
<role></role>
|
|
148
|
+
<url>http://www.themoviedb.org/person/15346</url>
|
|
149
|
+
|
|
150
|
+
</person>
|
|
151
|
+
<person job="screenplay">
|
|
152
|
+
<name>Alex Kurtzman</name>
|
|
153
|
+
<role></role>
|
|
154
|
+
<url>http://www.themoviedb.org/person/15345</url>
|
|
155
|
+
</person>
|
|
156
|
+
<person job="screenplay">
|
|
157
|
+
<name>John Rogers</name>
|
|
158
|
+
<role></role>
|
|
159
|
+
<url>http://www.themoviedb.org/person/19535</url>
|
|
160
|
+
</person>
|
|
161
|
+
<person job="actor">
|
|
162
|
+
<name>Shia LaBeouf</name>
|
|
163
|
+
|
|
164
|
+
<role>Sam 'Spike' Witwicky</role>
|
|
165
|
+
<url>http://www.themoviedb.org/person/10959</url>
|
|
166
|
+
</person>
|
|
167
|
+
<person job="actor">
|
|
168
|
+
<name>Josh Duhamel</name>
|
|
169
|
+
<role>Captain Lennox</role>
|
|
170
|
+
<url>http://www.themoviedb.org/person/19536</url>
|
|
171
|
+
</person>
|
|
172
|
+
|
|
173
|
+
<person job="actor">
|
|
174
|
+
<name>Megan Fox</name>
|
|
175
|
+
<role>Mikaela Banes</role>
|
|
176
|
+
<url>http://www.themoviedb.org/person/19537</url>
|
|
177
|
+
</person>
|
|
178
|
+
<person job="actor">
|
|
179
|
+
<name>Rachael Taylor</name>
|
|
180
|
+
<role>Maggie Madsen</role>
|
|
181
|
+
<url>http://www.themoviedb.org/person/19538</url>
|
|
182
|
+
</person>
|
|
183
|
+
<person job="actor">
|
|
184
|
+
|
|
185
|
+
<name>Tyrese Gibson</name>
|
|
186
|
+
<role>USAF Master Sgt. Epps</role>
|
|
187
|
+
<url>http://www.themoviedb.org/person/8169</url>
|
|
188
|
+
</person>
|
|
189
|
+
<person job="actor">
|
|
190
|
+
<name>Jon Voight</name>
|
|
191
|
+
<role>John Keller</role>
|
|
192
|
+
<url>http://www.themoviedb.org/person/10127</url>
|
|
193
|
+
</person>
|
|
194
|
+
<person job="actor">
|
|
195
|
+
<name>John Turturro</name>
|
|
196
|
+
|
|
197
|
+
<role>Agent Simmons</role>
|
|
198
|
+
<url>http://www.themoviedb.org/person/1241</url>
|
|
199
|
+
</person>
|
|
200
|
+
<person job="actor">
|
|
201
|
+
<name>Anthony Anderson</name>
|
|
202
|
+
<role>Glen Whitman</role>
|
|
203
|
+
<url>http://www.themoviedb.org/person/18471</url>
|
|
204
|
+
</person>
|
|
205
|
+
<person job="actor">
|
|
206
|
+
<name>Michael O'Neill</name>
|
|
207
|
+
|
|
208
|
+
<role>Banachek</role>
|
|
209
|
+
<url>http://www.themoviedb.org/person/19539</url>
|
|
210
|
+
</person>
|
|
211
|
+
<person job="actor">
|
|
212
|
+
<name>Peter Cullen</name>
|
|
213
|
+
<role>Optimus Prime (voice)</role>
|
|
214
|
+
<url>http://www.themoviedb.org/person/19540</url>
|
|
215
|
+
</person>
|
|
216
|
+
<person job="actor">
|
|
217
|
+
<name>Mark Ryan</name>
|
|
218
|
+
<role>Transformers (voice)</role>
|
|
219
|
+
|
|
220
|
+
<url>http://www.themoviedb.org/person/19541</url>
|
|
221
|
+
</person>
|
|
222
|
+
<person job="actor">
|
|
223
|
+
<name>Hugo Weaving</name>
|
|
224
|
+
<role>Megatron (voice)</role>
|
|
225
|
+
<url>http://www.themoviedb.org/person/1331</url>
|
|
226
|
+
</person>
|
|
227
|
+
<person job="actor">
|
|
228
|
+
<name>Keith David</name>
|
|
229
|
+
<role>Barricade (voice)</role>
|
|
230
|
+
<url>http://www.themoviedb.org/person/65827</url>
|
|
231
|
+
|
|
232
|
+
</person>
|
|
233
|
+
<person job="actor">
|
|
234
|
+
<name>Kevin Dunn </name>
|
|
235
|
+
<role>Ron Witwicky</role>
|
|
236
|
+
<url>http://www.themoviedb.org/person/14721</url>
|
|
237
|
+
</person>
|
|
238
|
+
<person job="actor">
|
|
239
|
+
<name>Michael O`Neill</name>
|
|
240
|
+
<role>Tom Banacheck</role>
|
|
241
|
+
<url>http://www.themoviedb.org/person/21710</url>
|
|
242
|
+
</person>
|
|
243
|
+
|
|
244
|
+
<person job="actor">
|
|
245
|
+
<name>Julie White</name>
|
|
246
|
+
<role>Judy Witwicky</role>
|
|
247
|
+
<url>http://www.themoviedb.org/person/24305</url>
|
|
248
|
+
</person>
|
|
249
|
+
<person job="actor">
|
|
250
|
+
<name>Amaury Nolasco</name>
|
|
251
|
+
<role>ACWO Jorge "Fig" Figueroa</role>
|
|
252
|
+
<url>http://www.themoviedb.org/person/17341</url>
|
|
253
|
+
|
|
254
|
+
</person>
|
|
255
|
+
<person job="producer">
|
|
256
|
+
<name>Ian Bryce</name>
|
|
257
|
+
<role></role>
|
|
258
|
+
<url>http://www.themoviedb.org/person/9987</url>
|
|
259
|
+
</person>
|
|
260
|
+
<person job="executive_producer">
|
|
261
|
+
<name>Brian%2520Goldner</name>
|
|
262
|
+
<role></role>
|
|
263
|
+
<url>http://www.themoviedb.org/person/24308</url>
|
|
264
|
+
</person>
|
|
265
|
+
<person job="executive_producer">
|
|
266
|
+
<name>Mark%2520Vahradian</name>
|
|
267
|
+
|
|
268
|
+
<role></role>
|
|
269
|
+
<url>http://www.themoviedb.org/person/24309</url>
|
|
270
|
+
</person>
|
|
271
|
+
<person job="director_of_photography">
|
|
272
|
+
<name>Mitchell Amundsen</name>
|
|
273
|
+
<role></role>
|
|
274
|
+
<url>http://www.themoviedb.org/person/24310</url>
|
|
275
|
+
</person>
|
|
276
|
+
<person job="production_design">
|
|
277
|
+
<name>Jeff Mann</name>
|
|
278
|
+
<role></role>
|
|
279
|
+
<url>http://www.themoviedb.org/person/7233</url>
|
|
280
|
+
|
|
281
|
+
</person>
|
|
282
|
+
<person job="editor">
|
|
283
|
+
<name>Paul Rubell</name>
|
|
284
|
+
<role></role>
|
|
285
|
+
<url>http://www.themoviedb.org/person/10816</url>
|
|
286
|
+
</person>
|
|
287
|
+
<person job="editor">
|
|
288
|
+
<name>Glen Scantlebury</name>
|
|
289
|
+
<role></role>
|
|
290
|
+
<url>http://www.themoviedb.org/person/899</url>
|
|
291
|
+
</person>
|
|
292
|
+
<person job="editor">
|
|
293
|
+
<name>Thomas A. Muldoon</name>
|
|
294
|
+
|
|
295
|
+
<role></role>
|
|
296
|
+
<url>http://www.themoviedb.org/person/24311</url>
|
|
297
|
+
</person>
|
|
298
|
+
<person job="costume_design">
|
|
299
|
+
<name>Deborah L. Scott</name>
|
|
300
|
+
<role></role>
|
|
301
|
+
<url>http://www.themoviedb.org/person/24189</url>
|
|
302
|
+
</person>
|
|
303
|
+
<person job="special_effects">
|
|
304
|
+
<name>John Frazier </name>
|
|
305
|
+
<role></role>
|
|
306
|
+
<url>http://www.themoviedb.org/person/10631</url>
|
|
307
|
+
|
|
308
|
+
</person>
|
|
309
|
+
</people>
|
|
310
|
+
<categories>
|
|
311
|
+
<category>
|
|
312
|
+
<name>Hollywood Film</name>
|
|
313
|
+
<url>http://www.themoviedb.org/encyclopedia/category/50</url>
|
|
314
|
+
</category>
|
|
315
|
+
<category>
|
|
316
|
+
<name>Teen Film</name>
|
|
317
|
+
<url>http://www.themoviedb.org/encyclopedia/category/866</url>
|
|
318
|
+
</category>
|
|
319
|
+
<category>
|
|
320
|
+
<name>Guy Movie</name>
|
|
321
|
+
|
|
322
|
+
<url>http://www.themoviedb.org/encyclopedia/category/864</url>
|
|
323
|
+
</category>
|
|
324
|
+
<category>
|
|
325
|
+
<name>Blockbuster</name>
|
|
326
|
+
<url>http://www.themoviedb.org/encyclopedia/category/104</url>
|
|
327
|
+
</category>
|
|
328
|
+
<category>
|
|
329
|
+
<name>Popcorn Movie</name>
|
|
330
|
+
<url>http://www.themoviedb.org/encyclopedia/category/1108</url>
|
|
331
|
+
</category>
|
|
332
|
+
<category>
|
|
333
|
+
<name>Mainstream</name>
|
|
334
|
+
|
|
335
|
+
<url>http://www.themoviedb.org/encyclopedia/category/1109</url>
|
|
336
|
+
</category>
|
|
337
|
+
<category>
|
|
338
|
+
<name>Action Film</name>
|
|
339
|
+
<url>http://www.themoviedb.org/encyclopedia/category/28</url>
|
|
340
|
+
</category>
|
|
341
|
+
<category>
|
|
342
|
+
<name>Science Fiction Film</name>
|
|
343
|
+
<url>http://www.themoviedb.org/encyclopedia/category/878</url>
|
|
344
|
+
</category>
|
|
345
|
+
<category>
|
|
346
|
+
<name>Adventure Film</name>
|
|
347
|
+
|
|
348
|
+
<url>http://www.themoviedb.org/encyclopedia/category/12</url>
|
|
349
|
+
</category>
|
|
350
|
+
</categories>
|
|
351
|
+
</movie>
|
|
352
|
+
</moviematches>
|
|
353
|
+
</results>
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'test/unit'
|
|
3
|
+
require 'context'
|
|
4
|
+
require 'fakeweb'
|
|
5
|
+
|
|
6
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
7
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
8
|
+
require 'tmdb_party'
|
|
9
|
+
|
|
10
|
+
class Test::Unit::TestCase
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def fixture_file(filename)
|
|
14
|
+
return '' if filename == ''
|
|
15
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
|
|
16
|
+
File.read(file_path)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def tmdb_url(url)
|
|
20
|
+
url =~ /^http/ ? url : "http://api.themoviedb.org/2.0#{url}"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def stub_get(url, filename, status=nil)
|
|
24
|
+
options = {:string => fixture_file(filename)}
|
|
25
|
+
options.merge!({:status => status}) unless status.nil?
|
|
26
|
+
|
|
27
|
+
FakeWeb.register_uri(:get, tmdb_url(url), options)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def stub_post(url, filename)
|
|
31
|
+
FakeWeb.register_uri(:post, tmdb_url(url), :string => fixture_file(filename))
|
|
32
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
|
2
|
+
|
|
3
|
+
class TestTmdbParty < Test::Unit::TestCase
|
|
4
|
+
|
|
5
|
+
before do
|
|
6
|
+
@tmdb = TMDBParty::Base.new('key')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
after do
|
|
10
|
+
FakeWeb.clean_registry
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
test "searching for transformers" do
|
|
14
|
+
stub_get('/Movie.search?api_key=key&title=transformers', 'search.xml')
|
|
15
|
+
stub_get('/Movie.getInfo?api_key=key&id=1858', 'transformers.xml')
|
|
16
|
+
|
|
17
|
+
results = @tmdb.search('transformers')
|
|
18
|
+
|
|
19
|
+
assert_equal 5, results.length
|
|
20
|
+
|
|
21
|
+
transformers = results.detect{|m| m.title == "Transformers"}
|
|
22
|
+
|
|
23
|
+
# check that the attributes are populated
|
|
24
|
+
assert_equal 31, transformers.popularity
|
|
25
|
+
assert_equal 1.0, transformers.score
|
|
26
|
+
assert_equal 1858, transformers.id
|
|
27
|
+
assert_equal 'tt0418279', transformers.imdb
|
|
28
|
+
assert_equal Date.new(2007, 7, 4), transformers.release
|
|
29
|
+
assert transformers.poster.first.is_a?(TMDBParty::Image)
|
|
30
|
+
assert transformers.backdrop.first.is_a?(TMDBParty::Image)
|
|
31
|
+
|
|
32
|
+
# how about some that are loaded lazily
|
|
33
|
+
assert_equal "http://www.transformersmovie.com/", transformers.homepage
|
|
34
|
+
assert_equal "http://www.youtube.com/watch?v=eduwcuq1Exg", transformers.trailer.url
|
|
35
|
+
|
|
36
|
+
assert_equal 9, transformers.categories.length
|
|
37
|
+
|
|
38
|
+
category = transformers.categories.detect{|cat| cat.name == "Adventure Film"}
|
|
39
|
+
assert_equal "http://www.themoviedb.org/encyclopedia/category/12", category.url
|
|
40
|
+
end
|
|
41
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: jduff-tmdb_party
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.2
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- John Duff
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
|
|
12
|
+
date: 2009-05-24 00:00:00 -07:00
|
|
13
|
+
default_executable:
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: httparty
|
|
17
|
+
type: :runtime
|
|
18
|
+
version_requirement:
|
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
20
|
+
requirements:
|
|
21
|
+
- - ">="
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
23
|
+
version: 0.4.3
|
|
24
|
+
version:
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: fakeweb
|
|
27
|
+
type: :development
|
|
28
|
+
version_requirement:
|
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: "0"
|
|
34
|
+
version:
|
|
35
|
+
- !ruby/object:Gem::Dependency
|
|
36
|
+
name: context
|
|
37
|
+
type: :development
|
|
38
|
+
version_requirement:
|
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
40
|
+
requirements:
|
|
41
|
+
- - ">="
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: "0"
|
|
44
|
+
version:
|
|
45
|
+
description:
|
|
46
|
+
email: duff.john@gmail.com
|
|
47
|
+
executables: []
|
|
48
|
+
|
|
49
|
+
extensions: []
|
|
50
|
+
|
|
51
|
+
extra_rdoc_files:
|
|
52
|
+
- LICENSE
|
|
53
|
+
- README.rdoc
|
|
54
|
+
files:
|
|
55
|
+
- LICENSE
|
|
56
|
+
- README.rdoc
|
|
57
|
+
- Rakefile
|
|
58
|
+
- VERSION.yml
|
|
59
|
+
- lib/tmdb_party.rb
|
|
60
|
+
- lib/tmdb_party/attributes.rb
|
|
61
|
+
- lib/tmdb_party/category.rb
|
|
62
|
+
- lib/tmdb_party/core_extensions.rb
|
|
63
|
+
- lib/tmdb_party/image.rb
|
|
64
|
+
- lib/tmdb_party/movie.rb
|
|
65
|
+
- lib/tmdb_party/video.rb
|
|
66
|
+
- test/fixtures/search.xml
|
|
67
|
+
- test/fixtures/transformers.xml
|
|
68
|
+
- test/test_helper.rb
|
|
69
|
+
- test/tmdb_party/test_tmdb_party.rb
|
|
70
|
+
has_rdoc: true
|
|
71
|
+
homepage: http://github.com/jduff/tmdb_party
|
|
72
|
+
post_install_message:
|
|
73
|
+
rdoc_options:
|
|
74
|
+
- --charset=UTF-8
|
|
75
|
+
require_paths:
|
|
76
|
+
- lib
|
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: "0"
|
|
82
|
+
version:
|
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: "0"
|
|
88
|
+
version:
|
|
89
|
+
requirements: []
|
|
90
|
+
|
|
91
|
+
rubyforge_project:
|
|
92
|
+
rubygems_version: 1.2.0
|
|
93
|
+
signing_key:
|
|
94
|
+
specification_version: 2
|
|
95
|
+
summary: TODO
|
|
96
|
+
test_files:
|
|
97
|
+
- test/test_helper.rb
|
|
98
|
+
- test/tmdb_party/test_tmdb_party.rb
|