Sha256: 8671ae29b4d41e8e54e614d2fcea7468e792da5dc5e562898261b0495fb1cf9c

Contents?: true

Size: 1.22 KB

Versions: 6

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

require "embiggen"
require "digest/sha2"
require "uri"

module Fushin
  module Models
    class Website < Model
      attr_reader :url
      def initialize(url)
        uri = Embiggen::URI(url)
        @url = uri.expand.to_s
      end

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

      def domain
        uri.hostname
      end

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

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

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

      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
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fushin-0.4.2 lib/fushin/models/website.rb
fushin-0.4.1 lib/fushin/models/website.rb
fushin-0.4.0 lib/fushin/models/website.rb
fushin-0.3.4 lib/fushin/models/website.rb
fushin-0.3.3 lib/fushin/models/website.rb
fushin-0.3.2 lib/fushin/models/website.rb