strike_api 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 856187a0144cd959ac28b8ed4818070544e3dda2
4
- data.tar.gz: b3a988c18d66c0a65730063a040d638274710e0d
3
+ metadata.gz: 2f52d0ba495cca0b1700a7c530780d736087dd7a
4
+ data.tar.gz: 4436491a814f90e98d43247a2d1a4b89c69a517d
5
5
  SHA512:
6
- metadata.gz: 3ca0dbb66a3070c0f5cb99fb483fd0f574521acd64ed42a4971384bc768d1f396c99942629e5f3dc5bbb46232e70a19b99e4b5327aaf641d0b96d2a4c8bc14c0
7
- data.tar.gz: 221dc677b9f33a9941983b4cebe107bdefe6bd19caf42da75bfaedf7f7e2d9e92cfc10d2a50a5e5e397a1d1716223427996e77f1fb65a3eb92e798a7a770e6b3
6
+ metadata.gz: c0d48f748a531b55e35f69cbf764487eaba97361ecb1f21175e881752395bf6802340cb167e372527d36396194c152558200ddd9f6265191fe4518fa733c3bb9
7
+ data.tar.gz: db2f904919f5a2435f2d8471d04ae12dddc435eda5c6c3e23d98dc61bce81fee3b0d6309398545a7aa53eb27580ef9a3a60f8e5fe7f54fd4fd36b16fc8aef265
data/README.md CHANGED
@@ -49,7 +49,7 @@ searchResults = StrikeApi::Torrent.search(yourSearchPhrase, yourCatagoryOrSubCat
49
49
  searchResults = StrikeApi::Torrent.search(yourSearchPhrase, yourCatagory, yourSubCategory)
50
50
  ```
51
51
 
52
- ### Top Torrents
52
+ ### Top torrents
53
53
 
54
54
  ```ruby
55
55
  # Param 1: category, examples: "Books", "all"
@@ -109,14 +109,26 @@ module StrikeApi
109
109
  return -1
110
110
  end
111
111
  end
112
- # Checks for 4XX errors and onward. Examples: 404, 502
112
+ # Checks for 4XX errors and onward. Examples: 404, 502, 522
113
113
  def self.errorChecker(response)
114
114
  code = response.code
115
- message = JSON.parse(response.body)["message"]
115
+ message = response.message
116
+ if (valid_json?(response.body) && JSON.parse(response.body)["message"])
117
+ message = JSON.parse(response.body)["message"]
118
+ end
116
119
  if(code >= 400)
117
120
  raise "Strike API error: #{code} - #{message}"
118
121
  end
119
122
  end
120
- private_class_method :errorChecker, :categoryChecker
123
+ # Checks for valid json
124
+ def self.valid_json?(json)
125
+ begin
126
+ JSON.parse(json)
127
+ return true
128
+ rescue Exception => e
129
+ return false
130
+ end
131
+ end
132
+ private_class_method :errorChecker, :categoryChecker, :valid_json?
121
133
  end
122
134
  end
@@ -1,3 +1,3 @@
1
1
  module StrikeApi
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
@@ -0,0 +1,126 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://getstrike.net/api/v2/torrents/search/?phrase=Slackware%2014.1%20x86_64%20DVD%20ISO
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 522
19
+ message: Origin Connection Time-out
20
+ headers:
21
+ Server:
22
+ - cloudflare-nginx
23
+ Date:
24
+ - Fri, 08 May 2015 00:30:00 GMT
25
+ Content-Type:
26
+ - text/html; charset=UTF-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - __cfduid=d288974c8a2d9b40f8201e7cc050bd2741431044985; expires=Sat, 07-May-16
33
+ 00:29:45 GMT; path=/; domain=.getstrike.net; HttpOnly
34
+ Expires:
35
+ - Thu, 01 Jan 1970 00:00:01 GMT
36
+ Cache-Control:
37
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
38
+ Pragma:
39
+ - no-cache
40
+ X-Frame-Options:
41
+ - SAMEORIGIN
42
+ Cf-Ray:
43
+ - 1e310d5860cc10c3-ORD
44
+ body:
45
+ encoding: UTF-8
46
+ string: "<!DOCTYPE html>\n<!--[if lt IE 7]> <html class=\"no-js ie6 oldie\"
47
+ lang=\"en-US\"> <![endif]-->\n<!--[if IE 7]> <html class=\"no-js ie7 oldie\"
48
+ lang=\"en-US\"> <![endif]-->\n<!--[if IE 8]> <html class=\"no-js ie8 oldie\"
49
+ lang=\"en-US\"> <![endif]-->\n<!--[if gt IE 8]><!--> <html class=\"no-js\"
50
+ lang=\"en-US\"> <!--<![endif]-->\n<head>\n<meta http-equiv=\"refresh\" content=\"0\">\n<meta
51
+ http-equiv=\"set-cookie\" content=\"cf_use_ob=443; expires=Fri, 08-May-15
52
+ 00:30:30 GMT; path=/\">\n<meta http-equiv=\"set-cookie\" content=\"cf_ob_info=522:1e310d5860cc10c3:ORD;
53
+ expires=Fri, 08-May-15 00:30:30 GMT; path=/\">\n<title>getstrike.net | 522:
54
+ Connection timed out</title>\n<meta charset=\"UTF-8\"/>\n<meta http-equiv=\"Content-Type\"
55
+ content=\"text/html; charset=UTF-8\"/>\n<meta http-equiv=\"X-UA-Compatible\"
56
+ content=\"IE=Edge,chrome=1\"/>\n<meta name=\"robots\" content=\"noindex, nofollow\"/>\n<meta
57
+ name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=1\"/>\n<script
58
+ type=\"text/javascript\">\n//<![CDATA[\ntry{if (!window.CloudFlare) {var CloudFlare=[{verbose:0,p:0,byc:0,owlid:\"cf\",bag2:1,mirage2:0,oracle:0,paths:{cloudflare:\"/cdn-cgi/nexp/dok3v=1613a3a185/\"},atok:\"1125e9e1122745bfae623320017b7145\",petok:\"6d14af5b2acb6b513c57cb1b7e3678dfda2f5af2-1431045000-1800\",zone:\"getstrike.net\",rocket:\"0\",apps:{\"ga_key\":{\"ua\":\"UA-59872713-1\",\"ga_bs\":\"2\"}}}];!function(a,b){a=document.createElement(\"script\"),b=document.getElementsByTagName(\"script\")[0],a.async=!0,a.src=\"//ajax.cloudflare.com/cdn-cgi/nexp/dok3v=7e13c32551/cloudflare.min.js\",b.parentNode.insertBefore(a,b)}()}}catch(e){};\n//]]>\n</script>\n<link
59
+ rel=\"stylesheet\" id=\"cf_styles-css\" href=\"/cdn-cgi/styles/cf.errors.css\"
60
+ type=\"text/css\" media=\"screen,projection\"/>\n<!--[if lt IE 9]><link rel=\"stylesheet\"
61
+ id='cf_styles-ie-css' href=\"/cdn-cgi/styles/cf.errors.ie.css\" type=\"text/css\"
62
+ media=\"screen,projection\" /><![endif]-->\n<style type=\"text/css\">body{margin:0;padding:0}</style>\n<!--[if
63
+ lte IE 9]><script type=\"text/javascript\" src=\"/cdn-cgi/scripts/jquery.min.js\"></script><![endif]-->\n<!--[if
64
+ gte IE 10]><!--><script type=\"text/javascript\" src=\"/cdn-cgi/scripts/zepto.min.js\"></script><!--<![endif]-->\n<script
65
+ type=\"text/javascript\" src=\"/cdn-cgi/scripts/cf.common.js\"></script>\n<script
66
+ type=\"text/javascript\">\n/* <![CDATA[ */\nvar _gaq = _gaq || [];\n_gaq.push(['_setAccount',
67
+ 'UA-59872713-1']);\n_gaq.push(['_trackPageview']);\n\n(function() {\nvar ga
68
+ = document.createElement('script'); ga.type = 'text/javascript'; ga.async
69
+ = true;\nga.src = ('https:' == document.location.protocol ? 'https://ssl'
70
+ : 'http://www') + '.google-analytics.com/ga.js';\nvar s = document.getElementsByTagName('script')[0];
71
+ s.parentNode.insertBefore(ga, s);\n})();\n\n(function(b){(function(a){\"__CF\"in
72
+ b&&\"DJS\"in b.__CF?b.__CF.DJS.push(a):\"addEventListener\"in b?b.addEventListener(\"load\",a,!1):b.attachEvent(\"onload\",a)})(function(){\"FB\"in
73
+ b&&\"Event\"in FB&&\"subscribe\"in FB.Event&&(FB.Event.subscribe(\"edge.create\",function(a){_gaq.push([\"_trackSocial\",\"facebook\",\"like\",a])}),FB.Event.subscribe(\"edge.remove\",function(a){_gaq.push([\"_trackSocial\",\"facebook\",\"unlike\",a])}),FB.Event.subscribe(\"message.send\",function(a){_gaq.push([\"_trackSocial\",\"facebook\",\"send\",a])}));\"twttr\"in
74
+ b&&\"events\"in twttr&&\"bind\"in twttr.events&&twttr.events.bind(\"tweet\",function(a){if(a){var
75
+ b;if(a.target&&a.target.nodeName==\"IFRAME\")a:{if(a=a.target.src){a=a.split(\"#\")[0].match(/[^?=&]+=([^&]*)?/g);b=0;for(var
76
+ c;c=a[b];++b)if(c.indexOf(\"url\")===0){b=unescape(c.split(\"=\")[1]);break
77
+ a}}b=void 0}_gaq.push([\"_trackSocial\",\"twitter\",\"tweet\",b])}})})})(window);\n/*
78
+ ]]> */\n</script>\n</head>\n<body>\n<div id=\"cf-wrapper\">\n<div id=\"cf-error-details\"
79
+ class=\"cf-error-details-wrapper\">\n<div class=\"cf-wrapper cf-error-overview\">\n<h1>\n<span
80
+ class=\"cf-error-type\" data-translate=\"error\">Error</span>\n<span class=\"cf-error-code\">522</span>\n<small
81
+ class=\"heading-ray-id\">Ray ID: 1e310d5860cc10c3 &bull; 2015-05-08 00:30:00
82
+ UTC</small>\n</h1>\n<h2 class=\"cf-subheadline\" data-translate=\"error_desc\">Connection
83
+ timed out</h2>\n</div> \n<div class=\"cf-section cf-highlight cf-status-display\">\n<div
84
+ class=\"cf-wrapper\">\n<div class=\"cf-columns cols-3\">\n<div id=\"cf-browser-status\"
85
+ class=\"cf-column cf-status-item cf-browser-status \">\n<div class=\"cf-icon-error-container\">\n<i
86
+ class=\"cf-icon cf-icon-browser\"></i>\n<i class=\"cf-icon-status cf-icon-ok\"></i>\n</div>\n<span
87
+ class=\"cf-status-desc\" data-translate=\"browser_desc\">You</span>\n<h3 class=\"cf-status-name\"
88
+ data-translate=\"browser_label\">Browser</h3>\n<span class=\"cf-status-label\"
89
+ data-translate=\"browser_status_label\">Working</span>\n</div>\n<div id=\"cf-cloudflare-status\"
90
+ class=\"cf-column cf-status-item cf-cloudflare-status \">\n<div class=\"cf-icon-error-container\">\n<i
91
+ class=\"cf-icon cf-icon-cloud\"></i>\n<i class=\"cf-icon-status cf-icon-ok\"></i>\n</div>\n<span
92
+ class=\"cf-status-desc\" data-translate=\"cloud_desc\">Chicago</span>\n<h3
93
+ class=\"cf-status-name\" data-translate=\"cloud_label\">CloudFlare</h3>\n<span
94
+ class=\"cf-status-label\" data-translate=\"cloud_status_label\">Working</span>\n</div>\n<div
95
+ id=\"cf-host-status\" class=\"cf-column cf-status-item cf-host-status cf-error-source\">\n<div
96
+ class=\"cf-icon-error-container\">\n<i class=\"cf-icon cf-icon-server\"></i>\n<i
97
+ class=\"cf-icon-status cf-icon-error\"></i>\n</div>\n<span class=\"cf-status-desc\"
98
+ data-translate=\"server_desc\">getstrike.net</span>\n<h3 class=\"cf-status-name\"
99
+ data-translate=\"server_label\">Host</h3>\n<span class=\"cf-status-label\"
100
+ data-translate=\"server_status_label\">Error</span>\n</div>\n</div>\n</div>\n</div>
101
+ \n<div class=\"cf-section cf-wrapper\">\n<div class=\"cf-columns two\">\n<div
102
+ class=\"cf-column\">\n<h2 data-translate=\"what_happened\">What happened?</h2>\n<p
103
+ data-translate=\"connection_timed_out\">The initial connection between CloudFlare's
104
+ network and the origin web server timed out. As a result, the web page can
105
+ not be displayed.</p>\n</div>\n<div class=\"cf-column\">\n<h2 data-translate=\"what_can_i_do\">What
106
+ can I do?</h2>\n<h5 data-translate=\"if_website_visitor\">If you're a visitor
107
+ of this website:</h5>\n<p data-translate=\"try_again_in_a_few\">Please try
108
+ again in a few minutes.</p>\n<h5 data-translate=\"if_website_owner\">If you're
109
+ the owner of this website:</h5>\n<p><span data-translate=\"522_owner_desc\">Contact
110
+ your hosting provider letting them know your web server is not completing
111
+ requests. An Error 522 means that the request was able to connect to your
112
+ web server, but that the request didn't finish. The most likely cause is that
113
+ something on your server is hogging resources.</span> <a href=\"https://support.cloudflare.com/hc/en-us/articles/200171906-Error-522\"
114
+ data-translate=\"addtl_troubleshooting\">Additional troubleshooting information
115
+ here.</a></p>\n</div>\n</div>\n</div> \n<div class=\"cf-error-footer cf-wrapper\">\n<p>\n<span
116
+ class=\"cf-footer-item\">CloudFlare Ray ID: <strong>1e310d5860cc10c3</strong></span>\n<span
117
+ class=\"cf-footer-separator\">&bull;</span>\n<span class=\"cf-footer-item\"><span
118
+ data-translate=\"your_ip\">Your IP</span>: 2001:4930:22:0:dca1:642:aacb:7bd</span>\n<span
119
+ class=\"cf-footer-separator\">&bull;</span>\n<span class=\"cf-footer-item\"><span
120
+ data-translate=\"performance_security_by\">Performance &amp; security by</span>
121
+ <a data-orig-proto=\"https\" data-orig-ref=\"www.cloudflare.com/5xx-error-landing\"
122
+ id=\"brand_link\" target=\"_blank\">CloudFlare</a></span>\n</p>\n</div> \n</div>
123
+ \n</div> \n"
124
+ http_version:
125
+ recorded_at: Fri, 08 May 2015 00:30:00 GMT
126
+ recorded_with: VCR 2.9.3
@@ -187,6 +187,16 @@ class StrikeTorrentTest < Minitest::Test
187
187
  end
188
188
  end
189
189
 
190
+ def test_site_down_cloudflare
191
+ VCR.use_cassette('test_site_down_cloudflare') do
192
+ begin
193
+ result = StrikeApi::Torrent.search("Slackware 14.1 x86_64 DVD ISO")
194
+ rescue => e
195
+ assert_equal "Strike API error: 522 - Origin Connection Time-out", e.message
196
+ end
197
+ end
198
+ end
199
+
190
200
  def test_filter_string
191
201
  VCR.use_cassette('test_filter_string') do
192
202
  flag = true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strike_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marshall Ford
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-24 00:00:00.000000000 Z
12
+ date: 2015-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -138,6 +138,7 @@ files:
138
138
  - test/fixtures/test_search_empty.yml
139
139
  - test/fixtures/test_search_no_torrents.yml
140
140
  - test/fixtures/test_search_subCategory.yml
141
+ - test/fixtures/test_site_down_cloudflare.yml
141
142
  - test/fixtures/test_top.yml
142
143
  - test/fixtures/test_top_all_category.yml
143
144
  - test/test_helper.rb
@@ -162,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
163
  version: '0'
163
164
  requirements: []
164
165
  rubyforge_project:
165
- rubygems_version: 2.2.2
166
+ rubygems_version: 2.4.6
166
167
  signing_key:
167
168
  specification_version: 4
168
169
  summary: Wrapper for the Strike API.
@@ -179,6 +180,7 @@ test_files:
179
180
  - test/fixtures/test_search_empty.yml
180
181
  - test/fixtures/test_search_no_torrents.yml
181
182
  - test/fixtures/test_search_subCategory.yml
183
+ - test/fixtures/test_site_down_cloudflare.yml
182
184
  - test/fixtures/test_top.yml
183
185
  - test/fixtures/test_top_all_category.yml
184
186
  - test/test_helper.rb