yify 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +23 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +22 -0
- data/README.md +276 -0
- data/Rakefile +31 -0
- data/lib/yify.rb +20 -0
- data/lib/yify/client.rb +184 -0
- data/lib/yify/models/api_response.rb +8 -0
- data/lib/yify/models/base.rb +10 -0
- data/lib/yify/models/comment.rb +15 -0
- data/lib/yify/models/movie.rb +54 -0
- data/lib/yify/models/profile.rb +10 -0
- data/lib/yify/models/requested_movie.rb +17 -0
- data/lib/yify/models/session.rb +10 -0
- data/lib/yify/models/upcoming_movie.rb +15 -0
- data/lib/yify/models/user.rb +19 -0
- data/lib/yify/response.rb +60 -0
- data/lib/yify/support/utils.rb +30 -0
- data/lib/yify/version.rb +3 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_add_a_request.yml +43 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_edit_a_profile.yml +42 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_get_a_profile.yml +44 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_get_movie_comments.yml +89 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_get_movie_details.yml +60 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_get_requests_list.yml +52 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_get_upcoming_movies.yml +188 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_get_user_details.yml +48 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_list_by_imdb_id.yml +55 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_list_movies.yml +45 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_login_a_user.yml +42 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_post_a_comment.yml +42 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_recover_passwords.yml +42 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_register_a_user.yml +42 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_reset_a_password.yml +42 -0
- data/spec/fixtures/vcr_cassettes/Yify_Client/should_vote_on_requests.yml +42 -0
- data/spec/models/api_response_spec.rb +6 -0
- data/spec/models/comment_spec.rb +13 -0
- data/spec/models/movie_spec.rb +53 -0
- data/spec/models/profile_spec.rb +21 -0
- data/spec/models/requested_movie_spec.rb +20 -0
- data/spec/models/session_spec.rb +8 -0
- data/spec/models/upcoming_movie_spec.rb +13 -0
- data/spec/models/user_spec.rb +17 -0
- data/spec/response_spec.rb +43 -0
- data/spec/spec_helper.rb +22 -0
- data/spec/support/utils_spec.rb +30 -0
- data/spec/yify_spec.rb +103 -0
- data/yify.gemspec +32 -0
- metadata +260 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://yts.re/api/login
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: username=<USERNAME>&password=<PASSWORD>
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- HU Server 9001
|
17
|
+
Date:
|
18
|
+
- Sun, 19 Oct 2014 22:57:37 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Access-Control-Allow-Origin:
|
26
|
+
- "*"
|
27
|
+
Age:
|
28
|
+
- '0'
|
29
|
+
X-Cache:
|
30
|
+
- uncached
|
31
|
+
Accept-Ranges:
|
32
|
+
- bytes
|
33
|
+
X-Frame-Options:
|
34
|
+
- SAMEORIGIN
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"userID":"<USERID>","username":"<USERNAME>","userRole":"Users","hash":"<HASH>"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Sun, 19 Oct 2014 22:57:38 GMT
|
42
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://yts.re/api/commentpost
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: hash=<HASH>&text=RUBY%20FTW!&movieid=353
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- HU Server 9001
|
17
|
+
Date:
|
18
|
+
- Sun, 19 Oct 2014 23:35:20 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Access-Control-Allow-Origin:
|
26
|
+
- "*"
|
27
|
+
Age:
|
28
|
+
- '0'
|
29
|
+
X-Cache:
|
30
|
+
- uncached
|
31
|
+
Accept-Ranges:
|
32
|
+
- bytes
|
33
|
+
X-Frame-Options:
|
34
|
+
- SAMEORIGIN
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status":"successfully posted comment"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Sun, 19 Oct 2014 23:35:21 GMT
|
42
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://yts.re/api/sendresetpass
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: email=<EMAIL>
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- FI Server 9001
|
17
|
+
Date:
|
18
|
+
- Mon, 20 Oct 2014 00:29:11 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Access-Control-Allow-Origin:
|
26
|
+
- "*"
|
27
|
+
Age:
|
28
|
+
- '0'
|
29
|
+
X-Cache:
|
30
|
+
- uncached
|
31
|
+
Accept-Ranges:
|
32
|
+
- bytes
|
33
|
+
X-Frame-Options:
|
34
|
+
- SAMEORIGIN
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status":"password reset code has been sent"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Mon, 20 Oct 2014 00:34:27 GMT
|
42
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://yts.re/api/register
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: username=<USERNAME>&password=<PASSWORD>&email=<EMAIL>
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- UA Server 9001
|
17
|
+
Date:
|
18
|
+
- Sun, 19 Oct 2014 22:41:55 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Access-Control-Allow-Origin:
|
26
|
+
- "*"
|
27
|
+
Age:
|
28
|
+
- '0'
|
29
|
+
X-Cache:
|
30
|
+
- uncached
|
31
|
+
Accept-Ranges:
|
32
|
+
- bytes
|
33
|
+
X-Frame-Options:
|
34
|
+
- SAMEORIGIN
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status":"An activation email has been sent <EMAIL>"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Sun, 19 Oct 2014 22:41:55 GMT
|
42
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://yts.re/api/resetpassconfirm
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: code=<CODE>&newpassword=<NEWPASSWORD>
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- UA Server 9001
|
17
|
+
Date:
|
18
|
+
- Mon, 20 Oct 2014 00:42:23 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Access-Control-Allow-Origin:
|
26
|
+
- "*"
|
27
|
+
Age:
|
28
|
+
- '0'
|
29
|
+
X-Cache:
|
30
|
+
- uncached
|
31
|
+
Accept-Ranges:
|
32
|
+
- bytes
|
33
|
+
X-Frame-Options:
|
34
|
+
- SAMEORIGIN
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status":"password has been changed"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Mon, 20 Oct 2014 00:42:23 GMT
|
42
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://yts.re/api/vote
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: hash=<HASH>&requestid=1169
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
headers:
|
15
|
+
Server:
|
16
|
+
- SK Server 9001
|
17
|
+
Date:
|
18
|
+
- Mon, 20 Oct 2014 07:57:51 GMT
|
19
|
+
Content-Type:
|
20
|
+
- application/json
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Access-Control-Allow-Origin:
|
26
|
+
- "*"
|
27
|
+
Age:
|
28
|
+
- '0'
|
29
|
+
X-Cache:
|
30
|
+
- uncached
|
31
|
+
Accept-Ranges:
|
32
|
+
- bytes
|
33
|
+
X-Frame-Options:
|
34
|
+
- SAMEORIGIN
|
35
|
+
X-Content-Type-Options:
|
36
|
+
- nosniff
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: '{"status":"Vote submission successful"}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Mon, 20 Oct 2014 00:18:43 GMT
|
42
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Yify::Models::Comment do
|
4
|
+
it { should respond_to(:comment_id) }
|
5
|
+
it { should respond_to(:comment_text) }
|
6
|
+
it { should respond_to(:date_added) }
|
7
|
+
it { should respond_to(:date_added_epoch) }
|
8
|
+
it { should respond_to(:user_id) }
|
9
|
+
it { should respond_to(:parent_comment_id) }
|
10
|
+
it { should respond_to(:user_name) }
|
11
|
+
it { should respond_to(:user_avatar) }
|
12
|
+
it { should respond_to(:user_group) }
|
13
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Yify::Models::Movie do
|
4
|
+
it { should respond_to(:age_rating) }
|
5
|
+
it { should respond_to(:cast_list) }
|
6
|
+
it { should respond_to(:cover_image) }
|
7
|
+
it { should respond_to(:date_uploaded) }
|
8
|
+
it { should respond_to(:date_uploaded_epoch) }
|
9
|
+
it { should respond_to(:director_list) }
|
10
|
+
it { should respond_to(:downloaded) }
|
11
|
+
it { should respond_to(:frame_rate) }
|
12
|
+
it { should respond_to(:genre) }
|
13
|
+
it { should respond_to(:genre1) }
|
14
|
+
it { should respond_to(:genre2) }
|
15
|
+
it { should respond_to(:imdb_code) }
|
16
|
+
it { should respond_to(:imdb_link) }
|
17
|
+
it { should respond_to(:language) }
|
18
|
+
it { should respond_to(:large_cover) }
|
19
|
+
it { should respond_to(:large_screenshot1) }
|
20
|
+
it { should respond_to(:large_screenshot2) }
|
21
|
+
it { should respond_to(:large_screenshot3) }
|
22
|
+
it { should respond_to(:long_description) }
|
23
|
+
it { should respond_to(:medium_cover) }
|
24
|
+
it { should respond_to(:medium_screenshot1) }
|
25
|
+
it { should respond_to(:medium_screenshot2) }
|
26
|
+
it { should respond_to(:medium_screenshot3) }
|
27
|
+
it { should respond_to(:movie_count) }
|
28
|
+
it { should respond_to(:movie_id) }
|
29
|
+
it { should respond_to(:movie_rating) }
|
30
|
+
it { should respond_to(:movie_runtime) }
|
31
|
+
it { should respond_to(:movie_title) }
|
32
|
+
it { should respond_to(:movie_title_clean) }
|
33
|
+
it { should respond_to(:movie_url) }
|
34
|
+
it { should respond_to(:movie_year) }
|
35
|
+
it { should respond_to(:quality) }
|
36
|
+
it { should respond_to(:resolution) }
|
37
|
+
it { should respond_to(:short_description) }
|
38
|
+
it { should respond_to(:size) }
|
39
|
+
it { should respond_to(:size_byte) }
|
40
|
+
it { should respond_to(:state) }
|
41
|
+
it { should respond_to(:subtitles) }
|
42
|
+
it { should respond_to(:torrent_hash) }
|
43
|
+
it { should respond_to(:torrent_magnet_url) }
|
44
|
+
it { should respond_to(:torrent_peers) }
|
45
|
+
it { should respond_to(:torrent_seeds) }
|
46
|
+
it { should respond_to(:torrent_url) }
|
47
|
+
it { should respond_to(:uploader) }
|
48
|
+
it { should respond_to(:uploader_uid) }
|
49
|
+
it { should respond_to(:uploader_notes) }
|
50
|
+
it { should respond_to(:youtube_trailer_id) }
|
51
|
+
it { should respond_to(:youtube_trailer_url) }
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Yify::Models::Profile do
|
4
|
+
it { should respond_to(:user_id) }
|
5
|
+
it { should respond_to(:user_name) }
|
6
|
+
it { should respond_to(:join_dated) }
|
7
|
+
it { should respond_to(:join_dated_epoch) }
|
8
|
+
it { should respond_to(:last_seen_date) }
|
9
|
+
it { should respond_to(:last_seen_date_epoch) }
|
10
|
+
it { should respond_to(:ip_address) }
|
11
|
+
it { should respond_to(:num_of_votes_left) }
|
12
|
+
it { should respond_to(:num_of_requests_left) }
|
13
|
+
it { should respond_to(:profile_active) }
|
14
|
+
it { should respond_to(:torrents_downloaded_count) }
|
15
|
+
it { should respond_to(:movies_requested_count) }
|
16
|
+
it { should respond_to(:comment_count) }
|
17
|
+
it { should respond_to(:chat_time_seconds) }
|
18
|
+
it { should respond_to(:avatar) }
|
19
|
+
it { should respond_to(:user_role) }
|
20
|
+
it { should respond_to(:about) }
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Yify::Models::RequestedMovie do
|
4
|
+
it { should respond_to(:movie_count) }
|
5
|
+
it { should respond_to(:request_id) }
|
6
|
+
it { should respond_to(:movie_title_clean) }
|
7
|
+
it { should respond_to(:movie_year) }
|
8
|
+
it { should respond_to(:movie_title) }
|
9
|
+
it { should respond_to(:imdb_code) }
|
10
|
+
it { should respond_to(:imdb_link) }
|
11
|
+
it { should respond_to(:cover_image) }
|
12
|
+
it { should respond_to(:short_description) }
|
13
|
+
it { should respond_to(:genre) }
|
14
|
+
it { should respond_to(:movie_rating) }
|
15
|
+
it { should respond_to(:date_added) }
|
16
|
+
it { should respond_to(:date_added_epoch) }
|
17
|
+
it { should respond_to(:votes) }
|
18
|
+
it { should respond_to(:user_id) }
|
19
|
+
it { should respond_to(:user_name) }
|
20
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Yify::Models::UpcomingMovie do
|
4
|
+
it { should respond_to(:movie_title) }
|
5
|
+
it { should respond_to(:movie_cover) }
|
6
|
+
it { should respond_to(:imdb_code) }
|
7
|
+
it { should respond_to(:imdb_link) }
|
8
|
+
it { should respond_to(:uploader) }
|
9
|
+
it { should respond_to(:uploader_uid) }
|
10
|
+
it { should respond_to(:date_added) }
|
11
|
+
it { should respond_to(:date_added_epoch) }
|
12
|
+
it { should respond_to(:username) }
|
13
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Yify::Models::User do
|
4
|
+
it { should respond_to(:user_id) }
|
5
|
+
it { should respond_to(:user_name) }
|
6
|
+
it { should respond_to(:join_dated) }
|
7
|
+
it { should respond_to(:join_dated_epoch) }
|
8
|
+
it { should respond_to(:last_seen_date) }
|
9
|
+
it { should respond_to(:last_seen_date_epoch) }
|
10
|
+
it { should respond_to(:torrents_downloaded_count) }
|
11
|
+
it { should respond_to(:movies_requested_count) }
|
12
|
+
it { should respond_to(:comment_count) }
|
13
|
+
it { should respond_to(:chat_time_seconds) }
|
14
|
+
it { should respond_to(:avatar) }
|
15
|
+
it { should respond_to(:user_role) }
|
16
|
+
it { should respond_to(:about) }
|
17
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Yify::Response do
|
4
|
+
let(:klass) { Yify::Response.new({}, :movie) }
|
5
|
+
|
6
|
+
it "should expose a model" do
|
7
|
+
expect(klass.model).to eq(:movie)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should expose a response" do
|
11
|
+
expect(klass.response).to eq({})
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should return a Movie" do
|
15
|
+
expect(klass.result).to be_a(Yify::Models::Movie)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "shout return a UpcomingMovie" do
|
19
|
+
res = Yify::Response.new({}, :upcoming_movie)
|
20
|
+
expect(res.result).to be_a(Yify::Models::UpcomingMovie)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return a Comment" do
|
24
|
+
res = Yify::Response.new({}, :comment)
|
25
|
+
expect(res.result).to be_a(Yify::Models::Comment)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should return a User" do
|
29
|
+
res = Yify::Response.new({}, :user)
|
30
|
+
expect(res.result).to be_a(Yify::Models::User)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should return a Session" do
|
34
|
+
res = Yify::Response.new({}, :session)
|
35
|
+
expect(res.result).to be_a(Yify::Models::Session)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should return a Profile" do
|
39
|
+
res = Yify::Response.new({}, :profile)
|
40
|
+
expect(res.result).to be_a(Yify::Models::Profile)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|