Class: Osakana::Website
- Inherits:
-
Object
- Object
- Osakana::Website
- Defined in:
- lib/osakana/website.rb
Instance Attribute Summary collapse
-
#date ⇒ Object
readonly
Returns the value of attribute date.
-
#primal_type ⇒ Object
readonly
Returns the value of attribute primal_type.
Instance Method Summary collapse
- #domain ⇒ Object
-
#initialize(ipv4: nil, domain: nil, date: nil) ⇒ Website
constructor
A new instance of Website.
- #ipv4 ⇒ Object
- #summary ⇒ Object
- #to_attachement ⇒ Object
- #urlscan_link ⇒ Object
- #vt_link ⇒ Object
Constructor Details
#initialize(ipv4: nil, domain: nil, date: nil) ⇒ Website
Returns a new instance of Website.
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/osakana/website.rb', line 9 def initialize(ipv4: nil, domain: nil, date: nil) raise ArgumentError, "Please provide ipv4 or domain for the initialization." if ipv4.nil? && domain.nil? @primal_type = domain ? "domain" : "ipv4" @ipv4 = ipv4 @domain = domain @date = date ? DateTime.parse(date).to_date.to_s : "N/A" @enricher = Enrichers::Enricher.new end |
Instance Attribute Details
#date ⇒ Object (readonly)
Returns the value of attribute date.
7 8 9 |
# File 'lib/osakana/website.rb', line 7 def date @date end |
#primal_type ⇒ Object (readonly)
Returns the value of attribute primal_type.
7 8 9 |
# File 'lib/osakana/website.rb', line 7 def primal_type @primal_type end |
Instance Method Details
#domain ⇒ Object
21 22 23 24 25 |
# File 'lib/osakana/website.rb', line 21 def domain @domain ||= [].tap do |out| out << @enricher.ipv4_to_domain(ipv4) end.first || "N/A" end |
#ipv4 ⇒ Object
27 28 29 30 31 |
# File 'lib/osakana/website.rb', line 27 def ipv4 @ipv4 ||= [].tap do |out| out << @enricher.domain_to_ipv4(domain) end.first || "N/A" end |
#summary ⇒ Object
33 34 35 |
# File 'lib/osakana/website.rb', line 33 def summary @summary ||= "#{domain}, #{ipv4} (date: #{date})" end |
#to_attachement ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/osakana/website.rb', line 45 def to_attachement { fallback: "urlscan.io link", title: summary, title_link: urlscan_link, footer: "urlscan.io", footer_icon: "http://www.google.com/s2/favicons?domain=urlscan.io" } end |
#urlscan_link ⇒ Object
41 42 43 |
# File 'lib/osakana/website.rb', line 41 def urlscan_link primal_type == "domain" ? "https://urlscan.io/domain/#{domain}" : "https://urlscan.io/ip/#{ipv4}" end |
#vt_link ⇒ Object
37 38 39 |
# File 'lib/osakana/website.rb', line 37 def vt_link primal_type == "domain" ? "https://www.virustotal.com/#/domain/#{domain}" : "https://www.virustotal.com/#/ip-address/#{ipv4}" end |