36 lines
943 B
Ruby
36 lines
943 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Firecrawl
|
|
module Models
|
|
# Options for a web search request.
|
|
class SearchOptions
|
|
FIELDS = %i[
|
|
sources categories include_domains exclude_domains limit tbs location
|
|
ignore_invalid_urls timeout scrape_options integration
|
|
].freeze
|
|
|
|
attr_reader(*FIELDS)
|
|
|
|
def initialize(**kwargs)
|
|
FIELDS.each { |f| instance_variable_set(:"@#{f}", kwargs[f]) }
|
|
end
|
|
|
|
def to_h
|
|
{
|
|
"sources" => sources,
|
|
"categories" => categories,
|
|
"includeDomains" => include_domains,
|
|
"excludeDomains" => exclude_domains,
|
|
"limit" => limit,
|
|
"tbs" => tbs,
|
|
"location" => location,
|
|
"ignoreInvalidURLs" => ignore_invalid_urls,
|
|
"timeout" => timeout,
|
|
"scrapeOptions" => scrape_options&.to_h,
|
|
"integration" => integration,
|
|
}.compact
|
|
end
|
|
end
|
|
end
|
|
end
|