virus_total 0.0.2 → 0.0.3
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/lib/core_extentions.rb +7 -0
- data/lib/virus_total/base.rb +6 -0
- data/lib/virus_total/domain.rb +1 -1
- data/lib/virus_total/file.rb +3 -3
- data/lib/virus_total/ip.rb +1 -1
- data/lib/virus_total/parser.rb +4 -3
- data/lib/virus_total/url.rb +2 -2
- data/lib/virus_total/version.rb +1 -1
- data/lib/virus_total.rb +1 -1
- data/spec/virus_total/base_spec.rb +3 -4
- data/spec/virus_total/parser_spec.rb +0 -4
- metadata +2 -2
- data/lib/core_extensions.rb +0 -23
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 308097c5810248bccc4c3e783656b80fc22ba05d
|
|
4
|
+
data.tar.gz: 95daa10ff9a9263248c8c664a63ffbc766af731f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 19a0ea7eab3ebc523f4e71a78c97487d6e443b382ef676ab192e10f8a537d54a1049fdf9a6ee82d532bacc7d2cef0603515f4cc44b3fa6241104105a864f3622
|
|
7
|
+
data.tar.gz: 5e74412cd54ccf0471b422f4d0c376cc2cc9a4f1142f4a864570c1443b93a87b475ad5954ce55dddfc9a0e88c5118fb6cb8e52a59d8019823919205f6d878881
|
data/lib/virus_total/base.rb
CHANGED
|
@@ -11,6 +11,12 @@ module VirusTotal
|
|
|
11
11
|
@apikey = apikey
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
def resource(separator = ", ")
|
|
15
|
+
return @resource.join(separator) if @resource.is_a?(Array)
|
|
16
|
+
|
|
17
|
+
@resource
|
|
18
|
+
end
|
|
19
|
+
|
|
14
20
|
def api_response(url, params = {})
|
|
15
21
|
full_url = BASE_URL + url
|
|
16
22
|
params = default_params.merge(params)
|
data/lib/virus_total/domain.rb
CHANGED
|
@@ -2,7 +2,7 @@ module VirusTotal
|
|
|
2
2
|
# to use this feature you must have a private apikey!
|
|
3
3
|
class Domain < Base
|
|
4
4
|
def report
|
|
5
|
-
api_response('domain/report', resource: @resource.
|
|
5
|
+
api_response('domain/report', resource: @resource.to_s, method: :get)
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
8
|
end
|
data/lib/virus_total/file.rb
CHANGED
|
@@ -5,18 +5,18 @@ module VirusTotal
|
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
def rescan
|
|
8
|
-
api_response('file/rescan', resource:
|
|
8
|
+
api_response('file/rescan', resource: resource)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def report
|
|
12
|
-
api_response('file/report', resource:
|
|
12
|
+
api_response('file/report', resource: resource)
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
private
|
|
16
16
|
|
|
17
17
|
def get_file
|
|
18
18
|
tmp = Tempfile.open('tmp')
|
|
19
|
-
tmp.write(IO::File.read(
|
|
19
|
+
tmp.write(IO::File.read(resource))
|
|
20
20
|
tmp
|
|
21
21
|
end
|
|
22
22
|
end
|
data/lib/virus_total/ip.rb
CHANGED
|
@@ -2,7 +2,7 @@ module VirusTotal
|
|
|
2
2
|
# to use this feature you must have a private apikey!
|
|
3
3
|
class Ip < Base
|
|
4
4
|
def report
|
|
5
|
-
api_response('ip-address/report', resource:
|
|
5
|
+
api_response('ip-address/report', resource: resource, method: :get)
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
8
|
end
|
data/lib/virus_total/parser.rb
CHANGED
|
@@ -10,16 +10,17 @@ module VirusTotal
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def info
|
|
13
|
-
@response
|
|
13
|
+
return unless @response
|
|
14
|
+
|
|
15
|
+
@response.tap { |hash| hash.delete("scans") }
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
def dangers
|
|
17
|
-
scans = @response.scans
|
|
18
19
|
return {} unless scans
|
|
19
20
|
|
|
20
21
|
dangers = {}
|
|
21
22
|
scans.each_pair do |key, hash|
|
|
22
|
-
next unless hash
|
|
23
|
+
next unless hash["detected"]
|
|
23
24
|
|
|
24
25
|
dangers.merge!({ key => hash })
|
|
25
26
|
end
|
data/lib/virus_total/url.rb
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
module VirusTotal
|
|
2
2
|
class Url < Base
|
|
3
3
|
def scan
|
|
4
|
-
api_response("url/scan", url:
|
|
4
|
+
api_response("url/scan", url: resource("\n"))
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
def report
|
|
8
|
-
api_response("url/report", resource:
|
|
8
|
+
api_response("url/report", resource: resource)
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
end
|
data/lib/virus_total/version.rb
CHANGED
data/lib/virus_total.rb
CHANGED
|
@@ -2,7 +2,6 @@ require "virus_total"
|
|
|
2
2
|
|
|
3
3
|
describe VirusTotal::Base do
|
|
4
4
|
let(:resource_param) { "first, second" }
|
|
5
|
-
let(:resource) { base.instance_variable_get("@resource") }
|
|
6
5
|
let(:base) { VirusTotal::Base.new(resource_param, "invalid_key") }
|
|
7
6
|
|
|
8
7
|
it "raises AuthError "\
|
|
@@ -13,14 +12,14 @@ describe VirusTotal::Base do
|
|
|
13
12
|
|
|
14
13
|
context "for resource parameter" do
|
|
15
14
|
it "returns resource correctly" do
|
|
16
|
-
resource.
|
|
15
|
+
base.resource.should == "first, second"
|
|
17
16
|
end
|
|
18
17
|
|
|
19
18
|
let(:resource_param) { ["first", "second"] }
|
|
20
19
|
|
|
21
20
|
it "split resources array correctly" do
|
|
22
|
-
resource.
|
|
23
|
-
resource
|
|
21
|
+
base.resource.should == "first, second"
|
|
22
|
+
base.resource("\n").should == "first\nsecond"
|
|
24
23
|
end
|
|
25
24
|
end
|
|
26
25
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: virus_total
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rubycop
|
|
@@ -78,7 +78,7 @@ files:
|
|
|
78
78
|
- LICENSE.txt
|
|
79
79
|
- README.md
|
|
80
80
|
- Rakefile
|
|
81
|
-
- lib/
|
|
81
|
+
- lib/core_extentions.rb
|
|
82
82
|
- lib/virus_total.rb
|
|
83
83
|
- lib/virus_total/base.rb
|
|
84
84
|
- lib/virus_total/domain.rb
|
data/lib/core_extensions.rb
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
class Array
|
|
2
|
-
def to_str(spliter = ", ")
|
|
3
|
-
join(spliter)
|
|
4
|
-
end
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
class String
|
|
8
|
-
def to_str(*args)
|
|
9
|
-
self
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
class Hash
|
|
14
|
-
def except_key(hash_key)
|
|
15
|
-
tap { |hash| hash.delete(hash_key) }
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def method_missing(name, *args)
|
|
19
|
-
name = name.to_s
|
|
20
|
-
name.gsub!("_", " ")
|
|
21
|
-
self[name]
|
|
22
|
-
end
|
|
23
|
-
end
|