Class: Fushin::Models::Website

Inherits:
Model
  • Object
show all
Defined in:
lib/fushin/models/website.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Model

#title

Constructor Details

#initialize(url) ⇒ Website

Returns a new instance of Website.



11
12
13
14
# File 'lib/fushin/models/website.rb', line 11

def initialize(url)
  uri = Embiggen::URI(url)
  @url = uri.expand.to_s
end

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



10
11
12
# File 'lib/fushin/models/website.rb', line 10

def url
  @url
end

Instance Method Details

#domainObject



20
21
22
# File 'lib/fushin/models/website.rb', line 20

def domain
  uri.hostname
end

#normalized_urlObject



28
29
30
# File 'lib/fushin/models/website.rb', line 28

def normalized_url
  @normalized_url ||= uri.path.empty? ? "#{url}/" : url
end

#to_attachementsObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/fushin/models/website.rb', line 36

def to_attachements
  [
    {
      fallback: "virustotal.com link",
      title: "VT: #{url}",
      title_link: vt_link,
      footer: "virustotal.com",
      footer_icon: "http://www.google.com/s2/favicons?domain=virustotal.com"
    },
    {
      fallback: "urlscan.io link",
      title: "urlscan.io: #{domain}",
      title_link: urlscan_link,
      footer: "urlscan.io",
      footer_icon: "http://www.google.com/s2/favicons?domain=urlscan.io"
    },
  ]
end

#uriObject



16
17
18
# File 'lib/fushin/models/website.rb', line 16

def uri
  @uri ||= URI(url)
end


24
25
26
# File 'lib/fushin/models/website.rb', line 24

def urlscan_link
  "https://urlscan.io/domain/#{domain}"
end


32
33
34
# File 'lib/fushin/models/website.rb', line 32

def vt_link
  "https://www.virustotal.com/#/url/#{Digest::SHA256.hexdigest(normalized_url)}"
end