Class: VirusTotal::VirusTotalResult
- Inherits:
-
Object
- Object
- VirusTotal::VirusTotalResult
- Defined in:
- lib/virustotal/virustotalresult.rb
Overview
A Wrapper class for the results from a virustotal.com
Instance Attribute Summary collapse
-
#results ⇒ Object
Returns the value of attribute results.
Instance Method Summary collapse
-
#initialize(hash, type, result) ⇒ VirusTotalResult
constructor
Creates a new instance of the [VirusTotalResult] class.
-
#to_stdout ⇒ Object
Prints the [VirusTotalResult] object to screen.
-
#to_xml ⇒ Object
Prints the [VirusTotalResult] object as a xml string to the screen.
-
#to_yaml ⇒ Object
Prints the [VirusTotalResult] object as a yaml string to the screen.
Constructor Details
#initialize(hash, type, result) ⇒ VirusTotalResult
Creates a new instance of the [VirusTotalResult] class
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/virustotal/virustotalresult.rb', line 13 def initialize hash, type, result @type = type @results = Array.new fres = Hash.new if result["result"] == 0 fres = Hash.new fres['hash'] = hash fres['scanner'] = '-' fres['date'] = '-' fres['permalink'] = '-' if @type == :hash fres['result'] = "Hash Not Found" elsif @type == :site fres['result'] = "Site Not Found" end @results.push fres elsif result["result"] == -1 puts "[!] Invalid API KEY! Please correct this!" exit else permalink = result["permalink"] date = result["report"][0] result["report"][1].each do |scanner, res| if res != '' fres = Hash.new fres['hash'] = hash fres['scanner'] = scanner fres['date'] = date fres['permalink'] = permalink unless permalink == nil fres['result'] = res @results.push fres end end end #if we didn't have any results let create a fake not found if @results.size == 0 fres = Hash.new fres['hash'] = hash fres['scanner'] = '-' fres['date'] = '-' fres['permalink'] = '-' if @type == :hash fres['result'] = "No Results for Hash" elsif @type == :site fres['result'] = "No Results for Site" end @results.push fres end end |
Instance Attribute Details
#results ⇒ Object
Returns the value of attribute results.
9 10 11 |
# File 'lib/virustotal/virustotalresult.rb', line 9 def results @results end |
Instance Method Details
#to_stdout ⇒ Object
Prints the [VirusTotalResult] object to screen
71 72 73 74 75 76 77 |
# File 'lib/virustotal/virustotalresult.rb', line 71 def to_stdout result_string = String.new @results.each do |result| result_string << "#{result['hash']}: Scanner: #{result['scanner']} Result: #{result['result']}\n" end print result_string end |
#to_xml ⇒ Object
Prints the [VirusTotalResult] object as a xml string to the screen
81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/virustotal/virustotalresult.rb', line 81 def to_xml result_string = String.new @results.each do |result| result_string << "\t<vtresult>\n" result_string << "\t\t<hash>#{result['hash']}</hash>\n" result_string << "\t\t<scanner>#{result['scanner']}</scanner>\n" result_string << "\t\t<date>#{result['date']}</date>\n" result_string << "\t\t<permalink>#{result['permalink']}</permalink>\n" unless result['permalink'] == nil result_string << "\t\t<result>#{result['result']}</result>\n" result_string << "\t</vtresult>\n" end print result_string end |
#to_yaml ⇒ Object
Prints the [VirusTotalResult] object as a yaml string to the screen
97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/virustotal/virustotalresult.rb', line 97 def to_yaml result_string = String.new @results.each do |result| result_string << "vt-result:\n" result_string << " hash: #{result['hash']}\n" result_string << " scanner: #{result['scanner']}\n" result_string << " date: #{result['date']}\n" result_string << " permalink: #{result['permalink']}\n" unless result['permalink'] == nil result_string << " result: #{result['result']}\n\n" end print result_string end |