netflix4r 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/Gemfile +17 -0
- data/Gemfile.lock +28 -0
- data/LICENSE.txt +20 -0
- data/README.md +54 -0
- data/Rakefile +57 -0
- data/VERSION +1 -0
- data/credentials.yml +3 -0
- data/lib/flix4r.rb +29 -0
- data/lib/net_flix/.DS_Store +0 -0
- data/lib/net_flix/api/.DS_Store +0 -0
- data/lib/net_flix/api/catalog/.DS_Store +0 -0
- data/lib/net_flix/api/catalog/titles.rb +22 -0
- data/lib/net_flix/authenticator.rb +74 -0
- data/lib/net_flix/builders/.DS_Store +0 -0
- data/lib/net_flix/builders/actor_builder.rb +29 -0
- data/lib/net_flix/builders/format_builder.rb +33 -0
- data/lib/net_flix/builders/title_builder.rb +66 -0
- data/lib/net_flix/credentials.rb +37 -0
- data/lib/net_flix/request.rb +56 -0
- data/lib/net_flix/title.rb +39 -0
- data/lib/net_flix.rb +28 -0
- data/lib/valuable.rb +82 -0
- data/log/netflix.log +160 -0
- data/netflix4r.gemspec +130 -0
- data/rakefile.rb +11 -0
- data/samples/.DS_Store +0 -0
- data/samples/actors.rb +5 -0
- data/samples/download_full_catalog.rb +7 -0
- data/samples/formats.rb +5 -0
- data/samples/search.rb +16 -0
- data/test/actor_builder_test.rb +35 -0
- data/test/authenticator_test.rb +75 -0
- data/test/credentials_test.rb +27 -0
- data/test/format_builder_test.rb +67 -0
- data/test/helper.rb +18 -0
- data/test/request_test.rb +32 -0
- data/test/test.rb +8 -0
- data/test/test_flix4r.rb +7 -0
- data/test/test_helpers.rb +20 -0
- data/test/tests.rb +3 -0
- data/test/title_builder_test.rb +167 -0
- data/test/title_test.rb +29 -0
- metadata +278 -0
data/lib/valuable.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
|
3
|
+
class Valuable
|
4
|
+
|
5
|
+
def attributes
|
6
|
+
@attributes ||= HashWithIndifferentAccess.new(deep_duplicate_of(self.class.defaults))
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(atts = {})
|
10
|
+
atts.each { |name, value| __send__("#{name}=", value ) }
|
11
|
+
end
|
12
|
+
|
13
|
+
def deep_duplicate_of(value)
|
14
|
+
Marshal.load(Marshal.dump(value))
|
15
|
+
end
|
16
|
+
|
17
|
+
class << self
|
18
|
+
|
19
|
+
def attributes
|
20
|
+
@attributes ||= []
|
21
|
+
end
|
22
|
+
|
23
|
+
def defaults
|
24
|
+
@defaults ||= {}
|
25
|
+
end
|
26
|
+
|
27
|
+
def has_value(name, options={})
|
28
|
+
attributes << name
|
29
|
+
defaults[name] = options[:default] unless options[:default].nil?
|
30
|
+
|
31
|
+
create_accessor_for(name)
|
32
|
+
create_setter_for(name, options[:klass], options[:default])
|
33
|
+
end
|
34
|
+
|
35
|
+
def create_setter_for(name, klass, default)
|
36
|
+
|
37
|
+
if klass == nil
|
38
|
+
define_method "#{name}=" do |value|
|
39
|
+
attributes[name] = value
|
40
|
+
end
|
41
|
+
|
42
|
+
elsif klass == Integer
|
43
|
+
|
44
|
+
define_method "#{name}=" do |value|
|
45
|
+
value_as_integer = value && value.to_i
|
46
|
+
attributes[name] = value_as_integer
|
47
|
+
end
|
48
|
+
|
49
|
+
elsif klass == String
|
50
|
+
|
51
|
+
define_method "#{name}=" do |value|
|
52
|
+
value_as_string = value && value.to_s
|
53
|
+
attributes[name] = value_as_string
|
54
|
+
end
|
55
|
+
|
56
|
+
else
|
57
|
+
|
58
|
+
define_method "#{name}=" do |value|
|
59
|
+
if value.nil?
|
60
|
+
attributes[name] = nil
|
61
|
+
elsif value.is_a? klass
|
62
|
+
attributes[name] = value
|
63
|
+
else
|
64
|
+
attributes[name] = klass.new(value)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def create_accessor_for(name)
|
71
|
+
define_method name do
|
72
|
+
attributes[name]
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def has_collection(name)
|
77
|
+
has_value(name, :default => [] )
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
data/log/netflix.log
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
# Logfile created on 2011-08-07 15:27:57 -0500 by logger.rb/25413
|
2
|
+
[1312748877] http://api.netflix.com/catalog/titles?max_results=2&oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=923578&oauth_signature=lkE1Cz1yoiAVmdWp4msRZjK6%2Bg0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312748785&oauth_version=1.0&term=sneakers
|
3
|
+
[1312749033] http://api.netflix.com/catalog/titles?max_results=2&oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=470616&oauth_signature=lkE1Cz1yoiAVmdWp4msRZjK6%2Bg0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312749030&oauth_version=1.0&term=sneakers
|
4
|
+
[1312749041] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=470616&oauth_signature=lkE1Cz1yoiAVmdWp4msRZjK6%2Bg0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312749030&oauth_version=1.0&term=sneakers
|
5
|
+
[1312749269] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=534827&oauth_signature=lkE1Cz1yoiAVmdWp4msRZjK6%2Bg0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312749256&oauth_version=1.0&term=sneakers
|
6
|
+
[1312749345] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=534827&oauth_signature=lkE1Cz1yoiAVmdWp4msRZjK6%2Bg0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312749256&oauth_version=1.0&term=sneakers
|
7
|
+
[1312749677] http://api.netflix.com/catalog/titles?max_results=2&oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=132021&oauth_signature=lkE1Cz1yoiAVmdWp4msRZjK6%2Bg0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312749674&oauth_version=1.0&term=sneakers
|
8
|
+
[1312749728] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=753706&oauth_signature=lkE1Cz1yoiAVmdWp4msRZjK6%2Bg0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312749716&oauth_version=1.0&term=a
|
9
|
+
[1312750308] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=946913&oauth_signature=frLPEhLHTLM5yoHjC7EyIIXQ6bk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750302&oauth_version=1.0&term=a
|
10
|
+
[1312750341] http://api.netflix.com/catalog/titles?max_results=2&oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=86737&oauth_signature=Sv0Deggk%2FTbdfUsYkXUt9geqosg%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750334&oauth_version=1.0&term=sneakers
|
11
|
+
[1312750942] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6XTclCGhrsmBEbOg8GW5rWinz%2B4%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0&term=a
|
12
|
+
[1312750943] http://api.netflix.com/catalog/titles/movies/70183378/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=CbO4Ac%2Fkl7JGlDHNKSCFzYn9UWM%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
13
|
+
[1312750943] http://api.netflix.com/catalog/titles/movies/70183378/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=RQv%2FlO%2FUD%2Bs1RfIFZnlsSaxftzw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
14
|
+
[1312750943] http://api.netflix.com/catalog/titles/movies/70049633/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=x4sEZ9UbuUnc7gqyDjykiswfhJ0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
15
|
+
[1312750943] http://api.netflix.com/catalog/titles/movies/70049633/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=5FjuPjpjxH0KuVr8oxlpRxIaX5g%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
16
|
+
[1312750944] http://api.netflix.com/catalog/titles/movies/705734/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=UpE%2F20dZum%2Bt4CWBjbmpeeZ6hwc%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
17
|
+
[1312750944] http://api.netflix.com/catalog/titles/movies/705734/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=4vbILsw88lV5EvHH03fZC91dX5o%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
18
|
+
[1312750944] http://api.netflix.com/catalog/titles/movies/70040973/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=t%2BNqEHZe2jC%2B68DM3%2FR4kVg6V%2FE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
19
|
+
[1312750944] http://api.netflix.com/catalog/titles/movies/70040973/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=1X0yriNoMrQINxX1yLgOsVLpSgk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
20
|
+
[1312750944] http://api.netflix.com/catalog/titles/series/70155565/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=qwR835W9ExvguDgJYsXzfXUM%2FI8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
21
|
+
[1312750945] http://api.netflix.com/catalog/titles/movies/60022998/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=UMRZeA2W8yEr%2FI83FwZmQm5YETU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
22
|
+
[1312750945] http://api.netflix.com/catalog/titles/movies/60022998/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=mVM3Q94Zj2pgWRg%2FXw17U1D0PqY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
23
|
+
[1312750945] http://api.netflix.com/catalog/titles/movies/70136065/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=OzSp97hDZPHVKNRS02gZsHYXPSs%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
24
|
+
[1312750945] http://api.netflix.com/catalog/titles/movies/70136065/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=ktRX2PswKndVa0W%2FEh6FlfxiEkA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
25
|
+
[1312750945] http://api.netflix.com/catalog/titles/movies/70094773/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=KDFeutEl8WvurUae4TiT%2B4t%2BgbE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
26
|
+
[1312750946] http://api.netflix.com/catalog/titles/movies/70094773/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=yHpYWQWjU7HNTFg494i6UrVdCJ8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
27
|
+
[1312750946] http://api.netflix.com/catalog/titles/movies/70061952/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=mh3p19Evd08J2kT3qgiKc3YOE34%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
28
|
+
[1312750946] http://api.netflix.com/catalog/titles/movies/70061952/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=5ah8SARRDh9imEYX3qEuamA9EUo%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
29
|
+
[1312750946] http://api.netflix.com/catalog/titles/movies/70109890/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=puZdcMRc8x1G1n4LX8PJ8E5AIKI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
30
|
+
[1312750946] http://api.netflix.com/catalog/titles/movies/70109890/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=Sgv72I3x%2FfgI7I25SwRJrHiOMDE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
31
|
+
[1312750946] http://api.netflix.com/catalog/titles/movies/70109087/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=NYaRAcTYV5UDt4UPmqAHAnv4wYQ%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
32
|
+
[1312750947] http://api.netflix.com/catalog/titles/movies/70109087/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rJn%2BgrxER%2FYdEaNP428HZLUsEVA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
33
|
+
[1312750947] http://api.netflix.com/catalog/titles/movies/70138342/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=WWxgXQ1SPDGFCgjqOGPk8ApigNI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
34
|
+
[1312750947] http://api.netflix.com/catalog/titles/movies/70138342/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=%2BkR9SEorxvIwjx012Bfx2zV%2FWsI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
35
|
+
[1312750947] http://api.netflix.com/catalog/titles/movies/60035684/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=ywz8gn4cOs%2FaMl8B38ILKl2K8DM%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
36
|
+
[1312750947] http://api.netflix.com/catalog/titles/movies/60035684/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=d8hEPNyM3bqiSP2%2BnTMzPHAcvrw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
37
|
+
[1312750948] http://api.netflix.com/catalog/titles/movies/70098677/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6WWZBcdeIKnauJKr08lXdjkcTgE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
38
|
+
[1312750948] http://api.netflix.com/catalog/titles/movies/70098677/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=94TVIP4iVCTu5MrkYcYlXztCuMA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
39
|
+
[1312750948] http://api.netflix.com/catalog/titles/movies/70011945/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=BV6Fap0ydLCoiO8qwLbQIRMTDB8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
40
|
+
[1312750948] http://api.netflix.com/catalog/titles/movies/70011945/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=fzFmVomruGgQxo75XEszlLAqxPY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
41
|
+
[1312750949] http://api.netflix.com/catalog/titles/movies/443335/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=OU6AKbLV7wX9Q5%2B1BhlY7%2FhjZvY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
42
|
+
[1312750949] http://api.netflix.com/catalog/titles/movies/443335/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=8XOFJgQ6u%2FGZg21Swk4HHaGh3rk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
43
|
+
[1312750949] http://api.netflix.com/catalog/titles/movies/383466/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=OnM1kBei7Bc9v0JPXUZVVnGUfeY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
44
|
+
[1312750949] http://api.netflix.com/catalog/titles/movies/383466/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=66cG%2Bng5nNIcDPT8xgex8OB%2BSx0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
45
|
+
[1312750949] http://api.netflix.com/catalog/titles/movies/70123920/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=H8W1vLWz8UdORu%2FtE08BxLEfb4I%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
46
|
+
[1312750949] http://api.netflix.com/catalog/titles/movies/70123920/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=Ik57PszRyL4clcNRC6yXQFlIMVE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
47
|
+
[1312750950] http://api.netflix.com/catalog/titles/movies/60003767/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=qH9nzpwIPcuU0%2FfNgUxdirxk19g%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
48
|
+
[1312750950] http://api.netflix.com/catalog/titles/movies/60003767/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=Uk9h292d1C2anlcZdbqNwKcSnaQ%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
49
|
+
[1312750950] http://api.netflix.com/catalog/titles/movies/70069480/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=3xMP26bBjXQ7PGS%2FHaIZSay6q%2Bc%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
50
|
+
[1312750950] http://api.netflix.com/catalog/titles/movies/70069480/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=SH5hYBUssmM%2Fzdd6Oamjd7GO0Go%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
51
|
+
[1312750950] http://api.netflix.com/catalog/titles/movies/70100349/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=VgJHTrZtT6e13s8KUZOmnthE%2BzI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
52
|
+
[1312750951] http://api.netflix.com/catalog/titles/movies/70100349/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=Q2UkPF647l9NQaQdRXFs5PhF9Jw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
53
|
+
[1312750951] http://api.netflix.com/catalog/titles/movies/70107499/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=lxx1tDjPbmaRRUSKSEP1MeCSPIM%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
54
|
+
[1312750951] http://api.netflix.com/catalog/titles/movies/70107499/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=EqRQTX%2F21YHftlvV1ci8CW%2B7mLU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
55
|
+
[1312750951] http://api.netflix.com/catalog/titles/movies/60023947/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=m8CBb9HGhwz0pJvHt8m8V6p8FkA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
56
|
+
[1312750951] http://api.netflix.com/catalog/titles/movies/60023947/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=z89KOIJAkEkMX0H9flTqUNvTeMs%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
57
|
+
[1312750951] http://api.netflix.com/catalog/titles/movies/1179333/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=mPXeXkqGl8NDqXUeYIngXfYgkKE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
58
|
+
[1312750952] http://api.netflix.com/catalog/titles/movies/1179333/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=COCK8D4w1OFJv%2FQlN3VA2snbGSY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
59
|
+
[1312750952] http://api.netflix.com/catalog/titles/movies/60036243/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=VfE2xjZhgSatVfCkMCy%2BlkKIr3M%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
60
|
+
[1312750952] http://api.netflix.com/catalog/titles/movies/60036243/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=5dskxvY5EDAEabZUstoPiTR2608%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
61
|
+
[1312750975] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rPh1V8bdZHvmA5sArBd2lCxpSdg%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0&term=sneakers
|
62
|
+
[1312750976] http://api.netflix.com/catalog/titles/movies/60031755/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=U6ZmDz7FViPRo8YPKN419KTiQTk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
63
|
+
[1312750976] http://api.netflix.com/catalog/titles/movies/60031755/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=waNfSGTKFP6qE3hfau4vphB1suY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
64
|
+
[1312750976] http://api.netflix.com/catalog/titles/movies/60024073/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=AgLgF19DnAy%2Blm%2Fu37rjuoDIVxE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
65
|
+
[1312750977] http://api.netflix.com/catalog/titles/movies/60024073/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=xrby5MW%2F3IVhXAbc7aDO0DSKZcA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
66
|
+
[1312750977] http://api.netflix.com/catalog/titles/movies/60033680/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=BNastDoOKtPqR0y5bA0boTgnIe4%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
67
|
+
[1312750977] http://api.netflix.com/catalog/titles/movies/60033680/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=L5KIz2cQutHionQkJSL0I7rcKMU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
68
|
+
[1312750977] http://api.netflix.com/catalog/titles/movies/60010229/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=GsnXjZcPzRi8ooRue8DlC5Wd89A%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
69
|
+
[1312750977] http://api.netflix.com/catalog/titles/movies/60010229/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rZO1tpnGWj5SCTBUdtb7j9u6m5M%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
70
|
+
[1312750977] http://api.netflix.com/catalog/titles/movies/70052113/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6OnhLpCr7Bdjo%2FpfNfDFMC3ab%2B4%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
71
|
+
[1312750978] http://api.netflix.com/catalog/titles/movies/70052113/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=pwvA1VDL%2Fv8OXcVfe5M3fQXNIIw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
72
|
+
[1312750978] http://api.netflix.com/catalog/titles/movies/70049186/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=c9Xmh0hBKGNiejPQcF6ALyDdYH8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
73
|
+
[1312750978] http://api.netflix.com/catalog/titles/movies/70049186/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rim6hAc478aIAbpm7y2hb1xSuyE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
74
|
+
[1312750978] http://api.netflix.com/catalog/titles/movies/60027593/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=%2BlNqWUX6ISn7riR9DFgfd5MCYTs%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
75
|
+
[1312750978] http://api.netflix.com/catalog/titles/movies/60027593/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=yqqsUEruapcFnac9Puu7dRd9q5A%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
76
|
+
[1312750978] http://api.netflix.com/catalog/titles/movies/70032916/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=Gt2TYloYk%2FfAbrcB7%2FEbkS6HLZs%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
77
|
+
[1312750979] http://api.netflix.com/catalog/titles/movies/70032916/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=RbKb4ltowJJDZWyupFOgNoVgP%2Fw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
78
|
+
[1312750979] http://api.netflix.com/catalog/titles/series/70139471/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=qrvrZpC727DTFQBxAv%2FRW6YWW3w%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
79
|
+
[1312750979] http://api.netflix.com/catalog/titles/series/70139471/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=P5U9noHRZfQood2eth89iXqIBJ4%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
80
|
+
[1312750979] http://api.netflix.com/catalog/titles/series/70129645/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=9HSxjK0b55V2YotA%2FclrGSW8BGo%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
81
|
+
[1312750979] http://api.netflix.com/catalog/titles/series/70129645/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=OZJZpZOSQTU8gb1sYaxwk6YS2aI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
82
|
+
[1312750979] http://api.netflix.com/catalog/titles/movies/70098677/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6WWZBcdeIKnauJKr08lXdjkcTgE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
83
|
+
[1312750979] http://api.netflix.com/catalog/titles/movies/70098677/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=94TVIP4iVCTu5MrkYcYlXztCuMA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
84
|
+
[1312750979] http://api.netflix.com/catalog/titles/series/70143865/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=VaKUxCWeRuUdK1OgjznTdhT3aJ8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
85
|
+
[1312750980] http://api.netflix.com/catalog/titles/movies/60023596/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=l1xat7Aq3jO51lKhQ6HNg3jJFHk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
86
|
+
[1312750980] http://api.netflix.com/catalog/titles/movies/60023596/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=AnNKkKIeOjcgfbi6cPAcKqYTQS8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
87
|
+
[1312750980] http://api.netflix.com/catalog/titles/movies/60000138/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=UUoQK9Kkht7kpcw68KA%2FmsVgdP0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
88
|
+
[1312750980] http://api.netflix.com/catalog/titles/movies/60000138/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=3gKpORilgbvXSKt5Vcyo7fEvwdA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
89
|
+
[1312750980] http://api.netflix.com/catalog/titles/movies/60027527/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rmX0ShBhLOUy7qhSB4BZ4CAj%2BGk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
90
|
+
[1312750980] http://api.netflix.com/catalog/titles/movies/60027527/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=CxLckgJ3QTQUUBFb%2F%2FXigtZht%2BU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
91
|
+
[1312750980] http://api.netflix.com/catalog/titles/movies/60028502/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=PleRjX320N5k7wjpottskZ5YEHk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
92
|
+
[1312750981] http://api.netflix.com/catalog/titles/movies/60028502/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=kA%2F90yBzTRo0dM1ti%2BROYZ3cVbA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
93
|
+
[1312750981] http://api.netflix.com/catalog/titles/movies/60034154/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=SIWmw5H5AdIiQFqVyb76eTlS1iI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
94
|
+
[1312750981] http://api.netflix.com/catalog/titles/movies/60034154/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=9IdV7Mg5U9baWDuK%2BU5TRrLKTfw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
95
|
+
[1312750981] http://api.netflix.com/catalog/titles/movies/70035762/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=%2FpYOqOvZSxuQXz2kUhAnpPL2%2Fqc%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
96
|
+
[1312750981] http://api.netflix.com/catalog/titles/movies/70035762/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=oej480lABHRgmou6r2yDM%2BfS22U%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
97
|
+
[1312750981] http://api.netflix.com/catalog/titles/movies/70038986/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=eMTIeybq0C7TMUdafhqucOtNXFA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
98
|
+
[1312750981] http://api.netflix.com/catalog/titles/movies/70038986/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=9y0bOmYk2MSI9xYoYsX5w3G2gkk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
99
|
+
[1312750982] http://api.netflix.com/catalog/titles/movies/70048917/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=HNStaJw0znj7dnNHHMQXygqh%2B68%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
100
|
+
[1312750982] http://api.netflix.com/catalog/titles/movies/70048917/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=sk4%2F0JWDc9FFlLJVmqPBtjOqkJQ%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
101
|
+
[1312750982] http://api.netflix.com/catalog/titles/movies/70055211/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=0w8q%2FLXFdWpN3NjA4G8SgZWbS5g%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
102
|
+
[1312750982] http://api.netflix.com/catalog/titles/movies/70055211/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6sY3SA0%2F9tnvDCkhsd%2FA7s2rBeU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
103
|
+
[1312750982] http://api.netflix.com/catalog/titles/movies/70069244/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=1EgnRYPpEIonIyOMjEmuWKYVVns%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
104
|
+
[1312750982] http://api.netflix.com/catalog/titles/movies/70069244/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=jTGsVje8sQ6rV%2FUwvxTqf8A5gas%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
105
|
+
[1312750982] http://api.netflix.com/catalog/titles/movies/70070141/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=i8nyL3oZxtU0m9ufG6qlcaYdLhU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
106
|
+
[1312750983] http://api.netflix.com/catalog/titles/movies/70070141/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=KQAgvzUwBF655qknz00oOVULEFY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
107
|
+
[1312750983] http://api.netflix.com/catalog/titles/movies/70134660/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=cCVWDqJwsIYdE1x5KYsUD%2BT6BV8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
108
|
+
[1312750983] http://api.netflix.com/catalog/titles/movies/70134660/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=j%2F8efZHlmi2xyys%2F518moBmnq3E%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
109
|
+
[1312750983] http://api.netflix.com/catalog/titles/movies/70153180/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=20MOWghcKBQDMdEaOaxQHTobEPI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
110
|
+
[1312750983] http://api.netflix.com/catalog/titles/movies/70153180/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=ye1s86eZ1OCpdOJSErgpIYdtpo0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
111
|
+
[1312751025] http://api.netflix.com/catalog/titles?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rPh1V8bdZHvmA5sArBd2lCxpSdg%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0&term=sneakers
|
112
|
+
[1312751026] http://api.netflix.com/catalog/titles/movies/60031755/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=U6ZmDz7FViPRo8YPKN419KTiQTk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
113
|
+
[1312751026] http://api.netflix.com/catalog/titles/movies/60031755/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=waNfSGTKFP6qE3hfau4vphB1suY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
114
|
+
[1312751026] http://api.netflix.com/catalog/titles/movies/60024073/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=AgLgF19DnAy%2Blm%2Fu37rjuoDIVxE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
115
|
+
[1312751026] http://api.netflix.com/catalog/titles/movies/60024073/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=xrby5MW%2F3IVhXAbc7aDO0DSKZcA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
116
|
+
[1312751027] http://api.netflix.com/catalog/titles/movies/60033680/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=BNastDoOKtPqR0y5bA0boTgnIe4%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
117
|
+
[1312751027] http://api.netflix.com/catalog/titles/movies/60033680/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=L5KIz2cQutHionQkJSL0I7rcKMU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
118
|
+
[1312751027] http://api.netflix.com/catalog/titles/movies/60010229/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=GsnXjZcPzRi8ooRue8DlC5Wd89A%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
119
|
+
[1312751028] http://api.netflix.com/catalog/titles/movies/60010229/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rZO1tpnGWj5SCTBUdtb7j9u6m5M%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
120
|
+
[1312751028] http://api.netflix.com/catalog/titles/movies/70052113/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6OnhLpCr7Bdjo%2FpfNfDFMC3ab%2B4%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
121
|
+
[1312751028] http://api.netflix.com/catalog/titles/movies/70052113/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=pwvA1VDL%2Fv8OXcVfe5M3fQXNIIw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
122
|
+
[1312751028] http://api.netflix.com/catalog/titles/movies/70049186/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=c9Xmh0hBKGNiejPQcF6ALyDdYH8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
123
|
+
[1312751028] http://api.netflix.com/catalog/titles/movies/70049186/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rim6hAc478aIAbpm7y2hb1xSuyE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
124
|
+
[1312751029] http://api.netflix.com/catalog/titles/movies/60027593/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=%2BlNqWUX6ISn7riR9DFgfd5MCYTs%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
125
|
+
[1312751029] http://api.netflix.com/catalog/titles/movies/60027593/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=yqqsUEruapcFnac9Puu7dRd9q5A%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
126
|
+
[1312751029] http://api.netflix.com/catalog/titles/movies/70032916/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=Gt2TYloYk%2FfAbrcB7%2FEbkS6HLZs%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
127
|
+
[1312751029] http://api.netflix.com/catalog/titles/movies/70032916/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=RbKb4ltowJJDZWyupFOgNoVgP%2Fw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
128
|
+
[1312751029] http://api.netflix.com/catalog/titles/series/70139471/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=qrvrZpC727DTFQBxAv%2FRW6YWW3w%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
129
|
+
[1312751029] http://api.netflix.com/catalog/titles/series/70139471/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=P5U9noHRZfQood2eth89iXqIBJ4%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
130
|
+
[1312751030] http://api.netflix.com/catalog/titles/series/70129645/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=9HSxjK0b55V2YotA%2FclrGSW8BGo%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
131
|
+
[1312751030] http://api.netflix.com/catalog/titles/series/70129645/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=OZJZpZOSQTU8gb1sYaxwk6YS2aI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
132
|
+
[1312751030] http://api.netflix.com/catalog/titles/movies/70098677/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6WWZBcdeIKnauJKr08lXdjkcTgE%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
133
|
+
[1312751030] http://api.netflix.com/catalog/titles/movies/70098677/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=94TVIP4iVCTu5MrkYcYlXztCuMA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
134
|
+
[1312751030] http://api.netflix.com/catalog/titles/series/70143865/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=VaKUxCWeRuUdK1OgjznTdhT3aJ8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
135
|
+
[1312751030] http://api.netflix.com/catalog/titles/movies/60023596/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=l1xat7Aq3jO51lKhQ6HNg3jJFHk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
136
|
+
[1312751031] http://api.netflix.com/catalog/titles/movies/60023596/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=AnNKkKIeOjcgfbi6cPAcKqYTQS8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
137
|
+
[1312751031] http://api.netflix.com/catalog/titles/movies/60000138/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=UUoQK9Kkht7kpcw68KA%2FmsVgdP0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
138
|
+
[1312751031] http://api.netflix.com/catalog/titles/movies/60000138/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=3gKpORilgbvXSKt5Vcyo7fEvwdA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
139
|
+
[1312751031] http://api.netflix.com/catalog/titles/movies/60027527/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=rmX0ShBhLOUy7qhSB4BZ4CAj%2BGk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
140
|
+
[1312751031] http://api.netflix.com/catalog/titles/movies/60027527/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=CxLckgJ3QTQUUBFb%2F%2FXigtZht%2BU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
141
|
+
[1312751032] http://api.netflix.com/catalog/titles/movies/60028502/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=PleRjX320N5k7wjpottskZ5YEHk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
142
|
+
[1312751032] http://api.netflix.com/catalog/titles/movies/60028502/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=kA%2F90yBzTRo0dM1ti%2BROYZ3cVbA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
143
|
+
[1312751032] http://api.netflix.com/catalog/titles/movies/60034154/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=SIWmw5H5AdIiQFqVyb76eTlS1iI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
144
|
+
[1312751032] http://api.netflix.com/catalog/titles/movies/60034154/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=9IdV7Mg5U9baWDuK%2BU5TRrLKTfw%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
145
|
+
[1312751032] http://api.netflix.com/catalog/titles/movies/70035762/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=%2FpYOqOvZSxuQXz2kUhAnpPL2%2Fqc%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
146
|
+
[1312751033] http://api.netflix.com/catalog/titles/movies/70035762/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=oej480lABHRgmou6r2yDM%2BfS22U%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
147
|
+
[1312751033] http://api.netflix.com/catalog/titles/movies/70038986/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=eMTIeybq0C7TMUdafhqucOtNXFA%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
148
|
+
[1312751033] http://api.netflix.com/catalog/titles/movies/70038986/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=9y0bOmYk2MSI9xYoYsX5w3G2gkk%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
149
|
+
[1312751033] http://api.netflix.com/catalog/titles/movies/70048917/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=HNStaJw0znj7dnNHHMQXygqh%2B68%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
150
|
+
[1312751033] http://api.netflix.com/catalog/titles/movies/70048917/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=sk4%2F0JWDc9FFlLJVmqPBtjOqkJQ%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
151
|
+
[1312751033] http://api.netflix.com/catalog/titles/movies/70055211/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=0w8q%2FLXFdWpN3NjA4G8SgZWbS5g%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
152
|
+
[1312751033] http://api.netflix.com/catalog/titles/movies/70055211/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=6sY3SA0%2F9tnvDCkhsd%2FA7s2rBeU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
153
|
+
[1312751034] http://api.netflix.com/catalog/titles/movies/70069244/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=1EgnRYPpEIonIyOMjEmuWKYVVns%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
154
|
+
[1312751034] http://api.netflix.com/catalog/titles/movies/70069244/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=jTGsVje8sQ6rV%2FUwvxTqf8A5gas%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
155
|
+
[1312751034] http://api.netflix.com/catalog/titles/movies/70070141/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=i8nyL3oZxtU0m9ufG6qlcaYdLhU%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
156
|
+
[1312751034] http://api.netflix.com/catalog/titles/movies/70070141/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=KQAgvzUwBF655qknz00oOVULEFY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
157
|
+
[1312751034] http://api.netflix.com/catalog/titles/movies/70134660/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=cCVWDqJwsIYdE1x5KYsUD%2BT6BV8%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
158
|
+
[1312751034] http://api.netflix.com/catalog/titles/movies/70134660/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=j%2F8efZHlmi2xyys%2F518moBmnq3E%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
159
|
+
[1312751035] http://api.netflix.com/catalog/titles/movies/70153180/cast?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=20MOWghcKBQDMdEaOaxQHTobEPI%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
160
|
+
[1312751035] http://api.netflix.com/catalog/titles/movies/70153180/format_availability?oauth_consumer_key=3n5x56cp5fbh23b3z2xsgdmu&oauth_nonce=888686&oauth_signature=ye1s86eZ1OCpdOJSErgpIYdtpo0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1312750930&oauth_version=1.0
|
data/netflix4r.gemspec
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{netflix4r}
|
8
|
+
s.version = "0.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["rossnelson"]
|
12
|
+
s.date = %q{2011-08-07}
|
13
|
+
s.description = %q{a ruby client for the NetFlix API}
|
14
|
+
s.email = %q{axcess1@me.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
"Gemfile",
|
22
|
+
"Gemfile.lock",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README.md",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"credentials.yml",
|
28
|
+
"lib/flix4r.rb",
|
29
|
+
"lib/net_flix.rb",
|
30
|
+
"lib/net_flix/.DS_Store",
|
31
|
+
"lib/net_flix/api/.DS_Store",
|
32
|
+
"lib/net_flix/api/catalog/.DS_Store",
|
33
|
+
"lib/net_flix/api/catalog/titles.rb",
|
34
|
+
"lib/net_flix/authenticator.rb",
|
35
|
+
"lib/net_flix/builders/.DS_Store",
|
36
|
+
"lib/net_flix/builders/actor_builder.rb",
|
37
|
+
"lib/net_flix/builders/format_builder.rb",
|
38
|
+
"lib/net_flix/builders/title_builder.rb",
|
39
|
+
"lib/net_flix/credentials.rb",
|
40
|
+
"lib/net_flix/request.rb",
|
41
|
+
"lib/net_flix/title.rb",
|
42
|
+
"lib/valuable.rb",
|
43
|
+
"log/netflix.log",
|
44
|
+
"netflix4r.gemspec",
|
45
|
+
"rakefile.rb",
|
46
|
+
"samples/.DS_Store",
|
47
|
+
"samples/actors.rb",
|
48
|
+
"samples/download_full_catalog.rb",
|
49
|
+
"samples/formats.rb",
|
50
|
+
"samples/search.rb",
|
51
|
+
"test/actor_builder_test.rb",
|
52
|
+
"test/authenticator_test.rb",
|
53
|
+
"test/credentials_test.rb",
|
54
|
+
"test/format_builder_test.rb",
|
55
|
+
"test/helper.rb",
|
56
|
+
"test/request_test.rb",
|
57
|
+
"test/test.rb",
|
58
|
+
"test/test_flix4r.rb",
|
59
|
+
"test/test_helpers.rb",
|
60
|
+
"test/tests.rb",
|
61
|
+
"test/title_builder_test.rb",
|
62
|
+
"test/title_test.rb"
|
63
|
+
]
|
64
|
+
s.homepage = %q{http://github.com/rossnelson/flix4r}
|
65
|
+
s.licenses = ["MIT"]
|
66
|
+
s.require_paths = ["lib"]
|
67
|
+
s.rubygems_version = %q{1.3.7}
|
68
|
+
s.summary = %q{copy of http://code.google.com/p/flix4r/}
|
69
|
+
s.test_files = [
|
70
|
+
"test/actor_builder_test.rb",
|
71
|
+
"test/authenticator_test.rb",
|
72
|
+
"test/credentials_test.rb",
|
73
|
+
"test/format_builder_test.rb",
|
74
|
+
"test/helper.rb",
|
75
|
+
"test/request_test.rb",
|
76
|
+
"test/test.rb",
|
77
|
+
"test/test_flix4r.rb",
|
78
|
+
"test/test_helpers.rb",
|
79
|
+
"test/tests.rb",
|
80
|
+
"test/title_builder_test.rb",
|
81
|
+
"test/title_test.rb"
|
82
|
+
]
|
83
|
+
|
84
|
+
if s.respond_to? :specification_version then
|
85
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
86
|
+
s.specification_version = 3
|
87
|
+
|
88
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
89
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
90
|
+
s.add_runtime_dependency(%q<ruby-hmac>, [">= 0"])
|
91
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
92
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
93
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
94
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
95
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
|
96
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
97
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
98
|
+
s.add_runtime_dependency(%q<ruby-hmac>, [">= 0"])
|
99
|
+
s.add_runtime_dependency(%q<json>, [">= 0"])
|
100
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
101
|
+
else
|
102
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
103
|
+
s.add_dependency(%q<ruby-hmac>, [">= 0"])
|
104
|
+
s.add_dependency(%q<json>, [">= 0"])
|
105
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
106
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
107
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
108
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
109
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
110
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
111
|
+
s.add_dependency(%q<ruby-hmac>, [">= 0"])
|
112
|
+
s.add_dependency(%q<json>, [">= 0"])
|
113
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
114
|
+
end
|
115
|
+
else
|
116
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
117
|
+
s.add_dependency(%q<ruby-hmac>, [">= 0"])
|
118
|
+
s.add_dependency(%q<json>, [">= 0"])
|
119
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
120
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
121
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
122
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
|
123
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
124
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
125
|
+
s.add_dependency(%q<ruby-hmac>, [">= 0"])
|
126
|
+
s.add_dependency(%q<json>, [">= 0"])
|
127
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
data/rakefile.rb
ADDED
data/samples/.DS_Store
ADDED
Binary file
|
data/samples/actors.rb
ADDED
@@ -0,0 +1,5 @@
|
|
1
|
+
require File.join( File.dirname(__FILE__), '..', 'flix4r.rb' )
|
2
|
+
|
3
|
+
target_file = File.join(File.dirname(__FILE__), 'actors.xml')
|
4
|
+
list = File.new(target_file, 'w')
|
5
|
+
list.puts NetFlix::Request.new(:url => 'http://api.netflix.com/catalog/titles/movies/60024073/cast').send
|
@@ -0,0 +1,7 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'netflix.rb')
|
2
|
+
|
3
|
+
# Writes the NetFlix response to the file catalog.xml
|
4
|
+
|
5
|
+
target_file = File.join(File.dirname(__FILE__), 'catalog.xml')
|
6
|
+
catalog = File.new(target_file, 'w')
|
7
|
+
catalog.puts NetFlix::API::Catalog::Title.list
|
data/samples/formats.rb
ADDED
@@ -0,0 +1,5 @@
|
|
1
|
+
require File.join( File.dirname(__FILE__), '..', 'flix4r.rb')
|
2
|
+
|
3
|
+
target_file = File.join( File.dirname(__FILE__), 'formats.xml')
|
4
|
+
list = File.new(target_file, 'w')
|
5
|
+
list.puts NetFlix::Request.new(:url => 'http://api.netflix.com/catalog/titles/movies/60031755/format_availability')
|
data/samples/search.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'flix4r.rb')
|
2
|
+
|
3
|
+
# writes the xml results for the search to the file sneakers.xml
|
4
|
+
|
5
|
+
target_file = File.join(File.dirname(__FILE__), 'search_results.xml')
|
6
|
+
catalog = File.new(target_file , 'w')
|
7
|
+
xml = NetFlix::API::Catalog::Titles.search('term' => 'sneakers', 'max_results' => 5)
|
8
|
+
|
9
|
+
puts "Building results..."
|
10
|
+
titles = TitleBuilder.from_xml(xml)
|
11
|
+
|
12
|
+
titles.each do |title|
|
13
|
+
puts " => #{title.id}"
|
14
|
+
end
|
15
|
+
|
16
|
+
catalog.puts xml
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.join( File.dirname(__FILE__), 'test.rb')
|
2
|
+
|
3
|
+
class ActorBuilderTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_that_actors_are_parsed
|
6
|
+
xml = %|<title_index_item>
|
7
|
+
<link href="http://api.netflix.com/catalog/people/98401" rel="http://schemas.netflix.com/catalog/person.actor" title="George Wendt"></link>
|
8
|
+
<link href="http://api.netflix.com/catalog/people/35954" rel="http://schemas.netflix.com/catalog/person.actor" title="Robert Hy Gorman"></link>
|
9
|
+
</title_index_item>
|
10
|
+
|
|
11
|
+
data = Nokogiri.XML(xml).search('//.')
|
12
|
+
assert_equal ['George Wendt', 'Robert Hy Gorman'], ActorBuilder.from_movie(data).sort
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_that_cast_reference_is_pulled
|
16
|
+
|
17
|
+
NetFlix::Request.expects(:new).with(:url => 'http://api.netflix.com/catalog/titles/movies/60024073/cast').returns(stub_everything(:send => '<xml/>'))
|
18
|
+
|
19
|
+
xml = %|
|
20
|
+
<title_index_item>
|
21
|
+
<link href="http://api.netflix.com/catalog/titles/movies/60024073/cast" rel="http://schemas.netflix.com/catalog/people.cast" title="cast"></link>
|
22
|
+
</title_index_item>
|
23
|
+
|
|
24
|
+
data = Nokogiri.XML(xml).search('//title_index_item')
|
25
|
+
|
26
|
+
ActorBuilder.from_movie(data)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_that_cast_list_is_parsable
|
30
|
+
xml = %|<people><person><id>http://api.netflix.com/catalog/people/20037237</id><name>Vanessa Bell Calloway</name><link href="http://api.netflix.com/catalog/people/20037237/filmography" rel="http://schemas.netflix.com/catalog/titles.filmography" title="filmography"></link><link href="http://www.netflix.com/RoleDisplay/Vanessa_Bell_Calloway/20037237" rel="alternate" title="web page"></link></person></people>|
|
31
|
+
|
32
|
+
assert_equal ['Vanessa Bell Calloway'], ActorBuilder.from_xml(xml)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require File.join( File.dirname(__FILE__), 'test.rb')
|
2
|
+
|
3
|
+
class AuthenticatorTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_that_url_is_properly_encoded
|
6
|
+
fake_request = stub_everything(:url => 'http://photos.example.net/a pic')
|
7
|
+
assert_equal 'http%3A%2F%2Fphotos.example.net%2Fa%20pic', NetFlix::Authenticator.new(:request => fake_request).encoded_url
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_that_spaces_in_parameters_are_encoded
|
11
|
+
request = stub_everything(:parameter_string => 'a key=value')
|
12
|
+
assert_equal 'a%20key%3Dvalue', NetFlix::Authenticator.new(:request => request).encoded_parameters
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_that_authentication_corresponds_to_known_values
|
16
|
+
#based on http://developer.netflix.com/docs/Security#0_pgfId-1015486
|
17
|
+
#based on http://term.ie/oauth/example/client.php
|
18
|
+
|
19
|
+
cred = stub_everything(
|
20
|
+
:key => '123456789012345678901234',
|
21
|
+
:secret => '1234567890',
|
22
|
+
:valid? => true)
|
23
|
+
|
24
|
+
expected_sbs = 'GET&http%3A%2F%2Fapi.netflix.com%2Fcatalog%2Ftitles&max_results%3D5%26oauth_consumer_key%3D123456789012345678901234%26oauth_nonce%3D24aea97b0b5dd516145966aaf2945c6a%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1233950836%26oauth_version%3D1.0%26term%3Dsneakers'
|
25
|
+
|
26
|
+
expected_signature = 'vlROEST9UXwI+zc9fld82giaYPE='
|
27
|
+
|
28
|
+
request = NetFlix::Request.new(
|
29
|
+
:url => 'http://api.netflix.com/catalog/titles',
|
30
|
+
:http_method => 'GET',
|
31
|
+
:parameters => {'term' => 'sneakers', 'max_results' => '5'})
|
32
|
+
|
33
|
+
auth = NetFlix::Authenticator.new(
|
34
|
+
:request => request,
|
35
|
+
:timestamp => 1233950836,
|
36
|
+
:nonce => '24aea97b0b5dd516145966aaf2945c6a',
|
37
|
+
:credentials => cred
|
38
|
+
)
|
39
|
+
|
40
|
+
assert_equal expected_sbs, auth.signature_base_string
|
41
|
+
assert_equal expected_signature, auth.signature
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_that_signature_key_includes_consumer_secret_and_ampersand
|
45
|
+
cred = stub_everything(:secret => 'shhh', :key => 'letmein')
|
46
|
+
assert_equal 'shhh&', NetFlix::Authenticator.new(:credentials => cred).signature_key
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_that_access_token_is_included_in_signature_key_if_it_is_available
|
50
|
+
cred = stub_everything(:secret => 'shhh', :key => 'letmein', :access_token => 'they_like_me')
|
51
|
+
request = stub_everything
|
52
|
+
|
53
|
+
assert_equal 'shhh&they_like_me', NetFlix::Authenticator.new(:request => request, :credentials => cred).signature_key
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_that_signature_is_added_to_parameters_during_signing
|
57
|
+
cred = stub_everything(:secred => 'shhh', :key => 'letmein', :valid? => true)
|
58
|
+
params = stub_everything
|
59
|
+
params.expects(:merge).with(has_key('oauth_signature')).once
|
60
|
+
|
61
|
+
request = stub_everything(:parameters => params)
|
62
|
+
auth = NetFlix::Authenticator.new(:request => request, :credentials => cred)
|
63
|
+
auth.sign!
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_that_exception_is_raised_if_secret_is_missing
|
67
|
+
credentials = stub_everything(:valid? => false)
|
68
|
+
authenticator = NetFlix::Authenticator.new(:credentials => credentials)
|
69
|
+
|
70
|
+
assert_raises ArgumentError do
|
71
|
+
authenticator.require_credentials
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.join( File.dirname(__FILE__), 'test.rb')
|
2
|
+
|
3
|
+
class CredentialsTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def file_contents
|
6
|
+
{:key => :value}.to_yaml
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_that_credentials_file_is_not_loaded_if_it_dne
|
10
|
+
File.stubs(:exist?).returns(false)
|
11
|
+
File.expects(:open).never
|
12
|
+
NetFlix::Credentials.from_file
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_that_credentials_file_is_loaded_if_present
|
16
|
+
File.stubs(:exist?).returns(true)
|
17
|
+
File.expects(:open).returns(file_contents)
|
18
|
+
NetFlix::Credentials.from_file
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_that_values_from_file_are_present
|
22
|
+
File.stubs(:exist?).returns(true)
|
23
|
+
File.stubs(:open).returns({:key => :my_key, :secret => 'quiet!'}.to_yaml)
|
24
|
+
assert_equal :my_key, NetFlix::Credentials.from_file.key
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|