strike_api 1.0.4 → 1.0.5

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 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