Sha256: 19f6ed8748a1f191599014285d7cf1de4595f51010397744e0f4952760888273
Contents?: true
Size: 1.39 KB
Versions: 9
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module Miteru class Feeds class UrlScan < Base # # @param [String] base_url # def initialize(base_url = "https://urlscan.io") super(base_url) @headers = {"api-key": api_key} end def urls search_with_pagination.flat_map do |json| (json["results"] || []).map { |result| result.dig("task", "url") } end.uniq end private def size 10_000 end # @return [<Type>] <description> # def api_key Miteru.config.urlscan_api_key end def q "#{base_condition} AND #{date_condition}" end # # @param [String, nil] search_after # # @return [Hash] # def search(search_after: nil) get_json("/api/v1/search/", params: {q:, size:, search_after:}.compact) end def search_with_pagination search_after = nil Enumerator.new do |y| loop do res = search(search_after:) y.yield res has_more = res["has_more"] break unless has_more search_after = res["results"].last["sort"].join(",") end end end def base_condition Miteru.config.urlscan_base_condition end def date_condition Miteru.config.urlscan_date_condition end end end end
Version data entries
9 entries across 9 versions & 1 rubygems