Sha256: 0d76e5fe5f3c1bb122a9e5ff05e70003d4b99468d46a4d160c07ccad7c808c92
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
# frozen_string_literal: true require "json" require "thor" module UrlScan class CLI < Thor class_option :API_KEY, type: :string desc "submit [URL]", "submit a scan to [URL]" method_option :public, type: :boolean, default: true def submit(url) with_error_handling do res = api.submit(url, options[:public]) puts JSON.pretty_generate(res) end end desc "result [UUID]", "get the result of a scan using the scan id [UUID]" def result(uuid) with_error_handling do res = api.result(uuid) puts JSON.pretty_generate(res) end end desc "search [QUERY]", "search for scans by [QUERY]" method_option :size, type: :numeric, default: 100 method_option :offset, type: :numeric, default: 0 method_option :sort, type: :string, default: "_score" def search(query) with_error_handling do res = api.search(query, size: options["size"], offset: options["offset"], sort: options["sort"]) puts JSON.pretty_generate(res) end end desc "dom [UUID]", "get the DOM of a scan using the scan id [UUID]" def dom(uuid) with_error_handling do res = api.dom(uuid) puts res end end desc "screenshot [UUID]", "get the screenshot(image/png) of a scan using the scan id [UUID]" def screenshot(uuid) with_error_handling do res = api.screenshot(uuid) puts res end end no_commands do def api options["API_KEY"] ? API.new(options["API_KEY"]) : API.new end def with_error_handling yield rescue ArgumentError => _e puts "Warning: please specify your urlscan.io API key via ENV['URLSCAN_API_KEY'] or --API-KEY" rescue ResponseError => e puts "Warning: #{e}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
urlscan-0.3.0 | lib/urlscan/cli.rb |