shodanz 2.0.3 → 2.0.4
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 +4 -4
- data/.github/workflows/ci.yml +7 -3
- data/README.md +1 -0
- data/lib/shodanz/apis/utils.rb +18 -9
- data/lib/shodanz/version.rb +1 -1
- data/shodanz.gemspec +4 -4
- metadata +10 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6def2a2b044dbd2e60e882a15d95d29e65c3319dd3265a9f133b72d58635f2aa
|
|
4
|
+
data.tar.gz: c9fb13c755a225b440107443b0a5d62ee67d3de3d4433285ec9cb1e23dce6c7c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a05b580ae377b72d7e3aedf613a780e9cf9c9b17a7d3358b798719e2cfeba5db47ac814b797872b1d85e6f81c24ac5031d0d7081dfddde48b861a9b5e354949a
|
|
7
|
+
data.tar.gz: 30c29c37cc7ab0e2728a18bb7ecd7fc402761b9ee23e70a7480711224dce7a4771f20fc371c1a47ee0c3db6671aee44a9477074f53aaf513289a268a0dbe26b5
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
name: CI
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
member:
|
|
5
4
|
push:
|
|
6
5
|
branches:
|
|
7
6
|
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
branches:
|
|
9
|
+
- master
|
|
8
10
|
schedule:
|
|
9
11
|
- cron: "0 9 * * *"
|
|
10
12
|
|
|
11
13
|
jobs:
|
|
12
14
|
test:
|
|
13
|
-
|
|
15
|
+
if: |
|
|
16
|
+
github.actor == 'picatz' ||
|
|
17
|
+
github.actor == 'dependabot[bot]' ||
|
|
18
|
+
github.actor == 'dependabot-preview[bot]'
|
|
14
19
|
runs-on: ubuntu-latest
|
|
15
|
-
|
|
16
20
|
steps:
|
|
17
21
|
- uses: actions/checkout@v1
|
|
18
22
|
- name: Set up Ruby 2.7
|
data/README.md
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/rb/shodanz)
|
|
4
4
|
[](https://www.rubydoc.info/gems/shodanz/)
|
|
5
|
+

|
|
5
6
|
|
|
6
7
|
A modern, async Ruby [gem](https://rubygems.org/) for [Shodan](https://www.shodan.io/), the world's first search engine for Internet-connected devices.
|
|
7
8
|
|
data/lib/shodanz/apis/utils.rb
CHANGED
|
@@ -20,10 +20,10 @@ module Shodanz
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Perform a direct POST HTTP request to the REST API.
|
|
23
|
-
def post(path, **params)
|
|
24
|
-
return sync_post(path,
|
|
23
|
+
def post(path, body: nil, **params)
|
|
24
|
+
return sync_post(path, params: params, body: body) unless Async::Task.current?
|
|
25
25
|
|
|
26
|
-
async_post(path,
|
|
26
|
+
async_post(path, params: params, body: body)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
# Perform the main function of consuming the streaming API.
|
|
@@ -107,11 +107,20 @@ module Shodanz
|
|
|
107
107
|
resp&.close
|
|
108
108
|
end
|
|
109
109
|
|
|
110
|
-
def poster(path, one_shot
|
|
110
|
+
def poster(path, one_shot: false, params: nil, body: nil)
|
|
111
111
|
# param keys should all be strings
|
|
112
112
|
params = params.transform_keys(&:to_s)
|
|
113
|
+
# and the key param is constant
|
|
114
|
+
params["key"] = @key
|
|
115
|
+
# encode as a URL string
|
|
116
|
+
params = URI.encode_www_form(params)
|
|
117
|
+
# optional JSON body string
|
|
118
|
+
json_body = body.nil? ? nil : JSON.dump(body)
|
|
119
|
+
# build URL path
|
|
120
|
+
path = "/#{path}?#{params}"
|
|
121
|
+
|
|
113
122
|
# make POST request to server
|
|
114
|
-
resp = @client.post(
|
|
123
|
+
resp = @client.post(path, nil, json_body)
|
|
115
124
|
|
|
116
125
|
if resp.success?
|
|
117
126
|
json = JSON.parse(resp.body.join)
|
|
@@ -164,15 +173,15 @@ module Shodanz
|
|
|
164
173
|
end.wait
|
|
165
174
|
end
|
|
166
175
|
|
|
167
|
-
def async_post(path,
|
|
176
|
+
def async_post(path, params: nil, body: nil)
|
|
168
177
|
Async::Task.current.async do
|
|
169
|
-
poster(path,
|
|
178
|
+
poster(path, params: params, body: body)
|
|
170
179
|
end
|
|
171
180
|
end
|
|
172
181
|
|
|
173
|
-
def sync_post(path,
|
|
182
|
+
def sync_post(path, params: nil, body: nil)
|
|
174
183
|
Async do
|
|
175
|
-
poster(path,
|
|
184
|
+
poster(path, params: params, body: body)
|
|
176
185
|
end.wait
|
|
177
186
|
end
|
|
178
187
|
|
data/lib/shodanz/version.rb
CHANGED
data/shodanz.gemspec
CHANGED
|
@@ -20,13 +20,13 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
end
|
|
21
21
|
spec.require_paths = ['lib']
|
|
22
22
|
|
|
23
|
-
spec.add_dependency 'async-http', '>= 0.38.1', '< 0.
|
|
24
|
-
spec.add_dependency 'async', '>= 1.17.1', '< 1.
|
|
23
|
+
spec.add_dependency 'async-http', '>= 0.38.1', '< 0.53.0'
|
|
24
|
+
spec.add_dependency 'async', '>= 1.17.1', '< 1.28.0'
|
|
25
25
|
|
|
26
26
|
spec.add_development_dependency 'async-rspec', '~> 1.14.0'
|
|
27
27
|
spec.add_development_dependency 'bundler', '~> 2.1.2'
|
|
28
|
-
spec.add_development_dependency 'pry', '~> 0.
|
|
28
|
+
spec.add_development_dependency 'pry', '~> 0.13.0'
|
|
29
29
|
spec.add_development_dependency 'rake', '~> 13.0.0'
|
|
30
30
|
spec.add_development_dependency 'rb-readline', '~> 0.5.5'
|
|
31
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
|
31
|
+
spec.add_development_dependency 'rspec', '~> 3.10.0'
|
|
32
32
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: shodanz
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kent 'picatz' Gruber
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-11-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: async-http
|
|
@@ -19,7 +19,7 @@ dependencies:
|
|
|
19
19
|
version: 0.38.1
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: 0.
|
|
22
|
+
version: 0.53.0
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,7 +29,7 @@ dependencies:
|
|
|
29
29
|
version: 0.38.1
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.
|
|
32
|
+
version: 0.53.0
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: async
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -39,7 +39,7 @@ dependencies:
|
|
|
39
39
|
version: 1.17.1
|
|
40
40
|
- - "<"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: 1.
|
|
42
|
+
version: 1.28.0
|
|
43
43
|
type: :runtime
|
|
44
44
|
prerelease: false
|
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -49,7 +49,7 @@ dependencies:
|
|
|
49
49
|
version: 1.17.1
|
|
50
50
|
- - "<"
|
|
51
51
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: 1.
|
|
52
|
+
version: 1.28.0
|
|
53
53
|
- !ruby/object:Gem::Dependency
|
|
54
54
|
name: async-rspec
|
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -84,14 +84,14 @@ dependencies:
|
|
|
84
84
|
requirements:
|
|
85
85
|
- - "~>"
|
|
86
86
|
- !ruby/object:Gem::Version
|
|
87
|
-
version: 0.
|
|
87
|
+
version: 0.13.0
|
|
88
88
|
type: :development
|
|
89
89
|
prerelease: false
|
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
|
91
91
|
requirements:
|
|
92
92
|
- - "~>"
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: 0.
|
|
94
|
+
version: 0.13.0
|
|
95
95
|
- !ruby/object:Gem::Dependency
|
|
96
96
|
name: rake
|
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -126,14 +126,14 @@ dependencies:
|
|
|
126
126
|
requirements:
|
|
127
127
|
- - "~>"
|
|
128
128
|
- !ruby/object:Gem::Version
|
|
129
|
-
version: 3.
|
|
129
|
+
version: 3.10.0
|
|
130
130
|
type: :development
|
|
131
131
|
prerelease: false
|
|
132
132
|
version_requirements: !ruby/object:Gem::Requirement
|
|
133
133
|
requirements:
|
|
134
134
|
- - "~>"
|
|
135
135
|
- !ruby/object:Gem::Version
|
|
136
|
-
version: 3.
|
|
136
|
+
version: 3.10.0
|
|
137
137
|
description: Featuring full support for the REST, Streaming and Exploits API
|
|
138
138
|
email:
|
|
139
139
|
- kgruber1@emich.edu
|