shodanz 2.0.3 → 2.0.4

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
  SHA256:
3
- metadata.gz: f4b13cd6886a40478480be6963df243daff8a70bc89386aaf837589a2d8ad301
4
- data.tar.gz: 90f764801640b90765c5e2bbf84cc7be70f0dbfbf788f60315bebf3a24f3e8ee
3
+ metadata.gz: 6def2a2b044dbd2e60e882a15d95d29e65c3319dd3265a9f133b72d58635f2aa
4
+ data.tar.gz: c9fb13c755a225b440107443b0a5d62ee67d3de3d4433285ec9cb1e23dce6c7c
5
5
  SHA512:
6
- metadata.gz: b2da8666780fe6fd7560155c868a821c0ea353ac5515f7e794429a07b5b600729ee117fbb6d269d3316b1c502afd9a914b656d7cfd0ca2cf8a5a1b410cab1ed4
7
- data.tar.gz: 4f44aac093e59b2f38ac942b7c6548abe25189180109f91a78e81b2f0ebbda235edf147625468252632f49cc806c0ad584f517074d6771716485e9d84be306b3
6
+ metadata.gz: a05b580ae377b72d7e3aedf613a780e9cf9c9b17a7d3358b798719e2cfeba5db47ac814b797872b1d85e6f81c24ac5031d0d7081dfddde48b861a9b5e354949a
7
+ data.tar.gz: 30c29c37cc7ab0e2728a18bb7ecd7fc402761b9ee23e70a7480711224dce7a4771f20fc371c1a47ee0c3db6671aee44a9477074f53aaf513289a268a0dbe26b5
@@ -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
  [![Gem Version](https://badge.fury.io/rb/shodanz.svg)](https://badge.fury.io/rb/shodanz)
4
4
  [![Yard Docs](http://img.shields.io/badge/shodanz-docs-blue.svg)](https://www.rubydoc.info/gems/shodanz/)
5
+ ![CI](https://github.com/picatz/shodanz/workflows/CI/badge.svg)
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
 
@@ -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, **params) unless Async::Task.current?
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, **params)
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=false, **params)
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("/#{path}?key=#{@key}", nil, JSON.dump(params))
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, **params)
176
+ def async_post(path, params: nil, body: nil)
168
177
  Async::Task.current.async do
169
- poster(path, **params)
178
+ poster(path, params: params, body: body)
170
179
  end
171
180
  end
172
181
 
173
- def sync_post(path, **params)
182
+ def sync_post(path, params: nil, body: nil)
174
183
  Async do
175
- poster(path, **params)
184
+ poster(path, params: params, body: body)
176
185
  end.wait
177
186
  end
178
187
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shodanz
4
- VERSION = '2.0.3'
4
+ VERSION = '2.0.4'
5
5
  end
@@ -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.51.0'
24
- spec.add_dependency 'async', '>= 1.17.1', '< 1.25.0'
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.12.2'
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.9.0'
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.3
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-02-11 00:00:00.000000000 Z
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.51.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.51.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.25.0
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.25.0
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.12.2
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.12.2
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.9.0
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.9.0
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