strike_api 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +54 -3
- data/lib/strike_api/torrent.rb +13 -2
- data/lib/strike_api/version.rb +1 -1
- data/strike_api.gemspec +1 -1
- data/test/torrent/torrent_test.rb +10 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfe5f4a17f2aaf0d99b6696601d1b2a563920692
|
4
|
+
data.tar.gz: 3f2534d86c091777a31c03d4f38aced81ca29adf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c5f3779ea342bbb198979becea5c796747ca816c7581e154d2b196381440ff9754acf489fee78c6d6305e927406bdc835cfdd0a8f35294a83388ae8c11637b1
|
7
|
+
data.tar.gz: 0b99a3ddf1c18a7ac2c5b329423a36ca8ef41c50f963409c45e7eb8df92c6ddfa8d454c83bcf20b67f376fb57468b40a2d083cc2d62851cf386643ecc6da30ac
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Strike API
|
2
2
|
|
3
|
-
|
3
|
+
[![Gem Version](https://img.shields.io/gem/v/strike_api.svg)](https://rubygems.org/gems/strike_api)
|
4
|
+
|
5
|
+
API wrapper for the Strike Search website (https://getstrike.net/torrents/)
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -20,12 +22,61 @@ Or install it yourself as:
|
|
20
22
|
|
21
23
|
## Usage
|
22
24
|
|
23
|
-
|
25
|
+
### Find
|
26
|
+
|
27
|
+
* Param 1: torrent hash string, array of torrent hash strings
|
28
|
+
* Returns: array of torrent objects (objects include file_info data)
|
29
|
+
|
30
|
+
```
|
31
|
+
result = StrikeApi::Torrent.find(yourTorrentHash)
|
32
|
+
```
|
33
|
+
|
34
|
+
### Search
|
35
|
+
|
36
|
+
* Param 1: search phrase, example: "ubuntu iso"
|
37
|
+
* Returns: array of torrent objects
|
38
|
+
|
39
|
+
```
|
40
|
+
result = StrikeApi::Torrent.search(yourSearchPhrase)
|
41
|
+
```
|
42
|
+
|
43
|
+
* Param 1: search phrase, example: "ubuntu iso"
|
44
|
+
* Param 2: Category or sub category, examples: "Music", "Documentary"
|
45
|
+
* Returns: array of torrent objects
|
46
|
+
|
47
|
+
```
|
48
|
+
result = StrikeApi::Torrent.search(yourSearchPhrase, yourCatagoryOrSubCategory)
|
49
|
+
```
|
50
|
+
|
51
|
+
* Param 1: search phrase, example: "ubuntu iso"
|
52
|
+
* Param 2: Category, example: "Applications"
|
53
|
+
* Param 3: Sub category, example: "Windows"
|
54
|
+
* Returns: array of torrent objects
|
55
|
+
|
56
|
+
```
|
57
|
+
result = StrikeApi::Torrent.search(yourSearchPhrase, yourCatagory, yourSubCategory)
|
58
|
+
```
|
59
|
+
|
60
|
+
### Categories and sub categories
|
61
|
+
|
62
|
+
* Returns: array of valid categories
|
63
|
+
|
64
|
+
```
|
65
|
+
result = StrikeApi::Torrent.catagoriesAvailable()
|
66
|
+
```
|
67
|
+
|
68
|
+
* Returns: array of valid sub categories
|
69
|
+
|
70
|
+
```
|
71
|
+
result = StrikeApi::Torrent.subCatagoriesAvailable()
|
72
|
+
```
|
73
|
+
|
74
|
+
See tests for more usage examples.
|
24
75
|
|
25
76
|
## TODO
|
26
77
|
|
27
78
|
1. Better commenting
|
28
|
-
2. Provide usage examples in readme
|
79
|
+
2. ~~Provide usage examples in readme~~
|
29
80
|
|
30
81
|
## Contributing
|
31
82
|
|
data/lib/strike_api/torrent.rb
CHANGED
@@ -6,7 +6,7 @@ API_URL = "https://getstrike.net/api/v2/torrents"
|
|
6
6
|
|
7
7
|
module StrikeApi
|
8
8
|
class Torrent
|
9
|
-
attr_reader :hash, :title, :category, :sub_category, :seeds, :leeches, :file_count, :size, :download_count, :upload_date, :uploader_username, :magnet_uri
|
9
|
+
attr_reader :hash, :title, :category, :sub_category, :seeds, :leeches, :file_count, :size, :download_count, :upload_date, :uploader_username, :magnet_uri, :file_info
|
10
10
|
|
11
11
|
# Constructor for torrent objects
|
12
12
|
def initialize(attributes)
|
@@ -22,6 +22,14 @@ module StrikeApi
|
|
22
22
|
@upload_date = attributes["upload_date"]
|
23
23
|
@uploader_username = attributes["uploader_username"]
|
24
24
|
@magnet_uri = attributes["magnet_uri"]
|
25
|
+
if(attributes.has_key?("file_info")) # file info is only included in hash searches (the find method)
|
26
|
+
file_names = attributes["file_info"]["file_names"].to_a
|
27
|
+
file_lengths = attributes["file_info"]["file_lengths"].to_a
|
28
|
+
@file_info = Array.new
|
29
|
+
file_names.each_with_index do |item, i|
|
30
|
+
@file_info[i] = [file_names[i],file_lengths[i]]
|
31
|
+
end
|
32
|
+
end
|
25
33
|
end
|
26
34
|
|
27
35
|
# Allows for both a single torrentHash via a string and multiple via an array of torrentHash strings.
|
@@ -29,8 +37,11 @@ module StrikeApi
|
|
29
37
|
def self.find(torrentHash)
|
30
38
|
hashListStr = ""
|
31
39
|
torrentHash = Array(torrentHash)
|
40
|
+
if(torrentHash.length > 50)
|
41
|
+
raise "Strike API accepts a maximum of 50 hashes per query"
|
42
|
+
end
|
32
43
|
torrentHash.length.times do |i|
|
33
|
-
hashListStr
|
44
|
+
hashListStr += torrentHash[i] + ","
|
34
45
|
end
|
35
46
|
response = HTTParty.get("#{API_URL}/info/?hashes=#{hashListStr}")
|
36
47
|
errorChecker(response)
|
data/lib/strike_api/version.rb
CHANGED
data/strike_api.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Marshall Ford","Brett Chastain"]
|
10
10
|
spec.email = ["inbox@marshallford.me"]
|
11
11
|
spec.summary = %q{Wrapper for the Strike API.}
|
12
|
-
spec.description = %q{API wrapper for the Strike Search website (
|
12
|
+
spec.description = %q{API wrapper for the Strike Search website (https://getstrike.net/torrents/)}
|
13
13
|
spec.homepage = "https://github.com/marshallford/strike_api"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -22,6 +22,8 @@ class StrikeTorrentTest < Minitest::Test
|
|
22
22
|
assert_equal "Feb 24, 2014", result.upload_date
|
23
23
|
assert_equal "Nusantara", result.uploader_username
|
24
24
|
assert_equal "magnet:?xt=urn:btih:156B69B8643BD11849A5D8F2122E13FBB61BD041&dn=Slackware+14.1+x86_64+DVD+ISO&tr=udp:\/\/open.demonii.com:1337&tr=udp:\/\/tracker.coppersurfer.tk:6969&tr=udp:\/\/tracker.leechers-paradise.org:6969&tr=udp:\/\/exodus.desync.com:6969", result.magnet_uri
|
25
|
+
assert_equal "slackware64-14.1-iso\\slackware64-14.1-install-dvd.iso", result.file_info[0][0] # first file, filename
|
26
|
+
assert_equal 2438987776, result.file_info[0][1] # first file, file length
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
@@ -44,6 +46,8 @@ class StrikeTorrentTest < Minitest::Test
|
|
44
46
|
assert_equal "Feb 24, 2014", result1.upload_date
|
45
47
|
assert_equal "Nusantara", result1.uploader_username
|
46
48
|
assert_equal "magnet:?xt=urn:btih:156B69B8643BD11849A5D8F2122E13FBB61BD041&dn=Slackware+14.1+x86_64+DVD+ISO&tr=udp:\/\/open.demonii.com:1337&tr=udp:\/\/tracker.coppersurfer.tk:6969&tr=udp:\/\/tracker.leechers-paradise.org:6969&tr=udp:\/\/exodus.desync.com:6969", result1.magnet_uri
|
49
|
+
assert_equal "slackware64-14.1-iso\\slackware64-14.1-install-dvd.iso", result1.file_info[0][0] # first file, filename
|
50
|
+
assert_equal 2438987776, result1.file_info[0][1] # first file, file length
|
47
51
|
# Torrent 2: Arch ISO
|
48
52
|
assert_equal StrikeApi::Torrent, result2.class
|
49
53
|
assert_equal "B425907E5755031BDA4A8D1B6DCCACA97DA14C04", result2.hash
|
@@ -58,6 +62,8 @@ class StrikeTorrentTest < Minitest::Test
|
|
58
62
|
assert_equal "Jan 6, 2015", result2.upload_date
|
59
63
|
assert_equal "The_Doctor-", result2.uploader_username
|
60
64
|
assert_equal "magnet:?xt=urn:btih:B425907E5755031BDA4A8D1B6DCCACA97DA14C04&dn=Arch+Linux+2015.01.01+%28x86%2Fx64%29&tr=udp:\/\/open.demonii.com:1337&tr=udp:\/\/tracker.coppersurfer.tk:6969&tr=udp:\/\/tracker.leechers-paradise.org:6969&tr=udp:\/\/exodus.desync.com:6969", result2.magnet_uri
|
65
|
+
assert_equal "archlinux-2015.01.01-dual.iso", result2.file_info[0][0] # first file, filename
|
66
|
+
assert_equal 615514112, result2.file_info[0][1] # first file, file length
|
61
67
|
end
|
62
68
|
end
|
63
69
|
|
@@ -107,6 +113,7 @@ class StrikeTorrentTest < Minitest::Test
|
|
107
113
|
assert_equal 1, result.length
|
108
114
|
assert result.kind_of?(Array)
|
109
115
|
assert result.first.kind_of?(StrikeApi::Torrent)
|
116
|
+
assert !result[0].file_info # file_info information is not given in search results
|
110
117
|
end
|
111
118
|
end
|
112
119
|
|
@@ -116,6 +123,7 @@ class StrikeTorrentTest < Minitest::Test
|
|
116
123
|
assert_equal 100, result.length
|
117
124
|
assert result.kind_of?(Array)
|
118
125
|
assert result.first.kind_of?(StrikeApi::Torrent)
|
126
|
+
assert !result[0].file_info # file_info information is not given in search results
|
119
127
|
end
|
120
128
|
end
|
121
129
|
|
@@ -125,6 +133,7 @@ class StrikeTorrentTest < Minitest::Test
|
|
125
133
|
assert_equal 100, result.length
|
126
134
|
assert result.kind_of?(Array)
|
127
135
|
assert result.first.kind_of?(StrikeApi::Torrent)
|
136
|
+
assert !result[0].file_info # file_info information is not given in search results
|
128
137
|
end
|
129
138
|
end
|
130
139
|
|
@@ -134,6 +143,7 @@ class StrikeTorrentTest < Minitest::Test
|
|
134
143
|
assert_equal 100, result.length
|
135
144
|
assert result.kind_of?(Array)
|
136
145
|
assert result.first.kind_of?(StrikeApi::Torrent)
|
146
|
+
assert !result[0].file_info # file_info information is not given in search results
|
137
147
|
end
|
138
148
|
end
|
139
149
|
|
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
|
+
version: 1.0.3
|
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-
|
12
|
+
date: 2015-04-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
|
-
description: API wrapper for the Strike Search website (
|
112
|
+
description: API wrapper for the Strike Search website (https://getstrike.net/torrents/)
|
113
113
|
email:
|
114
114
|
- inbox@marshallford.me
|
115
115
|
executables: []
|