40 lines
1.2 KiB
Ruby
40 lines
1.2 KiB
Ruby
|
|
# frozen_string_literal: true
|
||
|
|
|
||
|
|
module Firecrawl
|
||
|
|
module Models
|
||
|
|
# A scraped document returned by scrape, crawl, and batch endpoints.
|
||
|
|
class Document
|
||
|
|
attr_reader :markdown, :html, :raw_html, :json, :summary,
|
||
|
|
:metadata, :links, :images, :screenshot, :audio,
|
||
|
|
:attributes, :actions, :answer, :highlights, :warning,
|
||
|
|
:change_tracking, :branding
|
||
|
|
|
||
|
|
def initialize(data)
|
||
|
|
@markdown = data["markdown"]
|
||
|
|
@html = data["html"]
|
||
|
|
@raw_html = data["rawHtml"]
|
||
|
|
@json = data["json"]
|
||
|
|
@summary = data["summary"]
|
||
|
|
@metadata = data["metadata"]
|
||
|
|
@links = data["links"]
|
||
|
|
@images = data["images"]
|
||
|
|
@screenshot = data["screenshot"]
|
||
|
|
@audio = data["audio"]
|
||
|
|
@attributes = data["attributes"]
|
||
|
|
@actions = data["actions"]
|
||
|
|
@answer = data["answer"]
|
||
|
|
@highlights = data["highlights"]
|
||
|
|
@warning = data["warning"]
|
||
|
|
@change_tracking = data["changeTracking"]
|
||
|
|
@branding = data["branding"]
|
||
|
|
end
|
||
|
|
|
||
|
|
def to_s
|
||
|
|
title = metadata&.dig("title") || "untitled"
|
||
|
|
url = metadata&.dig("sourceURL") || "unknown"
|
||
|
|
"Document{title=#{title}, url=#{url}}"
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|