class Osakana::Website

Attributes

date[R]
primal_type[R]

Public Class Methods

new(ipv4: nil, domain: nil, date: nil) click to toggle source
# File lib/osakana/website.rb, line 10
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

Public Instance Methods

domain() click to toggle source
# File lib/osakana/website.rb, line 22
def domain
  @domain ||= [].tap do |out|
    out << @enricher.ipv4_to_domain(ipv4)
  end.first || "N/A"
end
ipv4() click to toggle source
# File lib/osakana/website.rb, line 28
def ipv4
  @ipv4 ||= [].tap do |out|
    out << @enricher.domain_to_ipv4(domain)
  end.first || "N/A"
end
summary() click to toggle source
# File lib/osakana/website.rb, line 34
def summary
  @summary ||=
    [].tap do |out|
      out << "#{domain}, #{ipv4} #{Kokki.flagize(ipv4)} (date: #{date})"
    rescue Kokki::InvalidInputError => _
      out << "#{domain}, #{ipv4} (date: #{date})"
    end.first
end
to_attachement() click to toggle source
# File lib/osakana/website.rb, line 51
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