context.dev 1.31.0 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -0
- data/README.md +1 -1
- data/lib/context_dev/internal/transport/base_client.rb +4 -1
- data/lib/context_dev/models/ai_ai_query_response.rb +36 -1
- data/lib/context_dev/models/ai_extract_product_response.rb +36 -1
- data/lib/context_dev/models/ai_extract_products_response.rb +36 -1
- data/lib/context_dev/models/brand_identify_from_transaction_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_email_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_name_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_simplified_response.rb +36 -1
- data/lib/context_dev/models/industry_retrieve_naics_response.rb +36 -1
- data/lib/context_dev/models/industry_retrieve_sic_response.rb +33 -1
- data/lib/context_dev/models/utility_prefetch_by_email_response.rb +36 -1
- data/lib/context_dev/models/utility_prefetch_response.rb +36 -1
- data/lib/context_dev/models/web_extract_competitors_response.rb +36 -1
- data/lib/context_dev/models/web_extract_fonts_response.rb +33 -1
- data/lib/context_dev/models/web_extract_params.rb +18 -1
- data/lib/context_dev/models/web_extract_response.rb +36 -1
- data/lib/context_dev/models/web_extract_styleguide_response.rb +36 -1
- data/lib/context_dev/models/web_screenshot_response.rb +36 -1
- data/lib/context_dev/models/web_search_response.rb +36 -1
- data/lib/context_dev/models/web_web_crawl_md_response.rb +275 -6
- data/lib/context_dev/models/web_web_scrape_html_response.rb +290 -1
- data/lib/context_dev/models/web_web_scrape_images_response.rb +36 -1
- data/lib/context_dev/models/web_web_scrape_md_response.rb +291 -1
- data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +36 -1
- data/lib/context_dev/resources/web.rb +5 -1
- data/lib/context_dev/version.rb +1 -1
- data/rbi/context_dev/models/ai_ai_query_response.rbi +62 -0
- data/rbi/context_dev/models/ai_extract_product_response.rbi +65 -0
- data/rbi/context_dev/models/ai_extract_products_response.rbi +65 -0
- data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_response.rbi +65 -0
- data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +67 -0
- data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +67 -0
- data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +67 -0
- data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +79 -4
- data/rbi/context_dev/models/utility_prefetch_response.rbi +77 -4
- data/rbi/context_dev/models/web_extract_competitors_response.rbi +70 -3
- data/rbi/context_dev/models/web_extract_fonts_response.rbi +68 -3
- data/rbi/context_dev/models/web_extract_params.rbi +24 -0
- data/rbi/context_dev/models/web_extract_response.rbi +65 -3
- data/rbi/context_dev/models/web_extract_styleguide_response.rbi +67 -0
- data/rbi/context_dev/models/web_screenshot_response.rbi +65 -0
- data/rbi/context_dev/models/web_search_response.rbi +65 -3
- data/rbi/context_dev/models/web_web_crawl_md_response.rbi +497 -10
- data/rbi/context_dev/models/web_web_scrape_html_response.rbi +553 -3
- data/rbi/context_dev/models/web_web_scrape_images_response.rbi +68 -3
- data/rbi/context_dev/models/web_web_scrape_md_response.rbi +542 -3
- data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +70 -3
- data/rbi/context_dev/resources/web.rbi +7 -0
- data/sig/context_dev/models/ai_ai_query_response.rbs +28 -0
- data/sig/context_dev/models/ai_extract_product_response.rbs +28 -0
- data/sig/context_dev/models/ai_extract_products_response.rbs +28 -0
- data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +28 -0
- data/sig/context_dev/models/industry_retrieve_naics_response.rbs +28 -0
- data/sig/context_dev/models/industry_retrieve_sic_response.rbs +28 -0
- data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +38 -2
- data/sig/context_dev/models/utility_prefetch_response.rbs +38 -2
- data/sig/context_dev/models/web_extract_competitors_response.rbs +31 -3
- data/sig/context_dev/models/web_extract_fonts_response.rbs +31 -3
- data/sig/context_dev/models/web_extract_params.rbs +14 -0
- data/sig/context_dev/models/web_extract_response.rbs +31 -3
- data/sig/context_dev/models/web_extract_styleguide_response.rbs +28 -0
- data/sig/context_dev/models/web_screenshot_response.rbs +28 -0
- data/sig/context_dev/models/web_search_response.rbs +31 -3
- data/sig/context_dev/models/web_web_crawl_md_response.rbs +229 -6
- data/sig/context_dev/models/web_web_scrape_html_response.rbs +263 -4
- data/sig/context_dev/models/web_web_scrape_images_response.rbs +31 -3
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +250 -3
- data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +31 -3
- data/sig/context_dev/resources/web.rbs +2 -0
- metadata +2 -2
|
@@ -17,6 +17,18 @@ module ContextDev
|
|
|
17
17
|
sig { returns(String) }
|
|
18
18
|
attr_accessor :html
|
|
19
19
|
|
|
20
|
+
# Metadata extracted from the scraped page HTML.
|
|
21
|
+
sig { returns(ContextDev::Models::WebWebScrapeHTMLResponse::Metadata) }
|
|
22
|
+
attr_reader :metadata
|
|
23
|
+
|
|
24
|
+
sig do
|
|
25
|
+
params(
|
|
26
|
+
metadata:
|
|
27
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OrHash
|
|
28
|
+
).void
|
|
29
|
+
end
|
|
30
|
+
attr_writer :metadata
|
|
31
|
+
|
|
20
32
|
# Indicates success
|
|
21
33
|
sig do
|
|
22
34
|
returns(
|
|
@@ -38,13 +50,34 @@ module ContextDev
|
|
|
38
50
|
sig { returns(String) }
|
|
39
51
|
attr_accessor :url
|
|
40
52
|
|
|
53
|
+
# Metadata about the API key used for the request. Included in every response
|
|
54
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
55
|
+
sig do
|
|
56
|
+
returns(
|
|
57
|
+
T.nilable(ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata)
|
|
58
|
+
)
|
|
59
|
+
end
|
|
60
|
+
attr_reader :key_metadata
|
|
61
|
+
|
|
62
|
+
sig do
|
|
63
|
+
params(
|
|
64
|
+
key_metadata:
|
|
65
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata::OrHash
|
|
66
|
+
).void
|
|
67
|
+
end
|
|
68
|
+
attr_writer :key_metadata
|
|
69
|
+
|
|
41
70
|
sig do
|
|
42
71
|
params(
|
|
43
72
|
html: String,
|
|
73
|
+
metadata:
|
|
74
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OrHash,
|
|
44
75
|
success:
|
|
45
76
|
ContextDev::Models::WebWebScrapeHTMLResponse::Success::OrBoolean,
|
|
46
77
|
type: ContextDev::Models::WebWebScrapeHTMLResponse::Type::OrSymbol,
|
|
47
|
-
url: String
|
|
78
|
+
url: String,
|
|
79
|
+
key_metadata:
|
|
80
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata::OrHash
|
|
48
81
|
).returns(T.attached_class)
|
|
49
82
|
end
|
|
50
83
|
def self.new(
|
|
@@ -52,13 +85,18 @@ module ContextDev
|
|
|
52
85
|
# page is a sitemap or feed served behind an XSL stylesheet (which browsers render
|
|
53
86
|
# into HTML), this is the underlying XML instead — see the `type` field.
|
|
54
87
|
html:,
|
|
88
|
+
# Metadata extracted from the scraped page HTML.
|
|
89
|
+
metadata:,
|
|
55
90
|
# Indicates success
|
|
56
91
|
success:,
|
|
57
92
|
# Detected content type of the returned `html` field. Sitemaps and feeds are
|
|
58
93
|
# surfaced as `xml`; ordinary pages are `html`.
|
|
59
94
|
type:,
|
|
60
95
|
# The URL that was scraped
|
|
61
|
-
url
|
|
96
|
+
url:,
|
|
97
|
+
# Metadata about the API key used for the request. Included in every response
|
|
98
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
99
|
+
key_metadata: nil
|
|
62
100
|
)
|
|
63
101
|
end
|
|
64
102
|
|
|
@@ -66,17 +104,478 @@ module ContextDev
|
|
|
66
104
|
override.returns(
|
|
67
105
|
{
|
|
68
106
|
html: String,
|
|
107
|
+
metadata: ContextDev::Models::WebWebScrapeHTMLResponse::Metadata,
|
|
69
108
|
success:
|
|
70
109
|
ContextDev::Models::WebWebScrapeHTMLResponse::Success::TaggedBoolean,
|
|
71
110
|
type:
|
|
72
111
|
ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol,
|
|
73
|
-
url: String
|
|
112
|
+
url: String,
|
|
113
|
+
key_metadata:
|
|
114
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata
|
|
74
115
|
}
|
|
75
116
|
)
|
|
76
117
|
end
|
|
77
118
|
def to_hash
|
|
78
119
|
end
|
|
79
120
|
|
|
121
|
+
class Metadata < ContextDev::Internal::Type::BaseModel
|
|
122
|
+
OrHash =
|
|
123
|
+
T.type_alias do
|
|
124
|
+
T.any(
|
|
125
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata,
|
|
126
|
+
ContextDev::Internal::AnyHash
|
|
127
|
+
)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Final URL scraped after redirects or scraper fallback, when known. Falls back to
|
|
131
|
+
# sourceUrl when unavailable.
|
|
132
|
+
sig { returns(String) }
|
|
133
|
+
attr_accessor :final_url
|
|
134
|
+
|
|
135
|
+
# Original URL requested by the caller.
|
|
136
|
+
sig { returns(String) }
|
|
137
|
+
attr_accessor :source_url
|
|
138
|
+
|
|
139
|
+
# Additional non-social meta tags not promoted to top-level metadata fields.
|
|
140
|
+
sig do
|
|
141
|
+
returns(
|
|
142
|
+
T.nilable(
|
|
143
|
+
T::Hash[
|
|
144
|
+
Symbol,
|
|
145
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
|
|
146
|
+
]
|
|
147
|
+
)
|
|
148
|
+
)
|
|
149
|
+
end
|
|
150
|
+
attr_reader :additional_meta
|
|
151
|
+
|
|
152
|
+
sig do
|
|
153
|
+
params(
|
|
154
|
+
additional_meta:
|
|
155
|
+
T::Hash[
|
|
156
|
+
Symbol,
|
|
157
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
|
|
158
|
+
]
|
|
159
|
+
).void
|
|
160
|
+
end
|
|
161
|
+
attr_writer :additional_meta
|
|
162
|
+
|
|
163
|
+
# Resolved alternate links from link rel=alternate tags.
|
|
164
|
+
sig do
|
|
165
|
+
returns(
|
|
166
|
+
T.nilable(
|
|
167
|
+
T::Array[
|
|
168
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate
|
|
169
|
+
]
|
|
170
|
+
)
|
|
171
|
+
)
|
|
172
|
+
end
|
|
173
|
+
attr_reader :alternates
|
|
174
|
+
|
|
175
|
+
sig do
|
|
176
|
+
params(
|
|
177
|
+
alternates:
|
|
178
|
+
T::Array[
|
|
179
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate::OrHash
|
|
180
|
+
]
|
|
181
|
+
).void
|
|
182
|
+
end
|
|
183
|
+
attr_writer :alternates
|
|
184
|
+
|
|
185
|
+
# Author metadata, when present.
|
|
186
|
+
sig { returns(T.nilable(String)) }
|
|
187
|
+
attr_reader :author
|
|
188
|
+
|
|
189
|
+
sig { params(author: String).void }
|
|
190
|
+
attr_writer :author
|
|
191
|
+
|
|
192
|
+
# Resolved canonical URL, when present.
|
|
193
|
+
sig { returns(T.nilable(String)) }
|
|
194
|
+
attr_reader :canonical_url
|
|
195
|
+
|
|
196
|
+
sig { params(canonical_url: String).void }
|
|
197
|
+
attr_writer :canonical_url
|
|
198
|
+
|
|
199
|
+
# Best description extracted from standard, Open Graph, or Twitter metadata.
|
|
200
|
+
sig { returns(T.nilable(String)) }
|
|
201
|
+
attr_reader :description
|
|
202
|
+
|
|
203
|
+
sig { params(description: String).void }
|
|
204
|
+
attr_writer :description
|
|
205
|
+
|
|
206
|
+
# Resolved favicon URL, when present.
|
|
207
|
+
sig { returns(T.nilable(String)) }
|
|
208
|
+
attr_reader :favicon
|
|
209
|
+
|
|
210
|
+
sig { params(favicon: String).void }
|
|
211
|
+
attr_writer :favicon
|
|
212
|
+
|
|
213
|
+
# Primary resolved preview image from Open Graph, Twitter, or image metadata.
|
|
214
|
+
sig { returns(T.nilable(String)) }
|
|
215
|
+
attr_reader :image
|
|
216
|
+
|
|
217
|
+
sig { params(image: String).void }
|
|
218
|
+
attr_writer :image
|
|
219
|
+
|
|
220
|
+
# JSON-LD structured data blocks parsed from the page.
|
|
221
|
+
sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) }
|
|
222
|
+
attr_reader :json_ld
|
|
223
|
+
|
|
224
|
+
sig { params(json_ld: T::Array[T::Hash[Symbol, T.anything]]).void }
|
|
225
|
+
attr_writer :json_ld
|
|
226
|
+
|
|
227
|
+
# Keywords extracted from the page's keywords meta tag.
|
|
228
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
229
|
+
attr_reader :keywords
|
|
230
|
+
|
|
231
|
+
sig { params(keywords: T::Array[String]).void }
|
|
232
|
+
attr_writer :keywords
|
|
233
|
+
|
|
234
|
+
# Language extracted from html lang or language meta tags.
|
|
235
|
+
sig { returns(T.nilable(String)) }
|
|
236
|
+
attr_reader :language
|
|
237
|
+
|
|
238
|
+
sig { params(language: String).void }
|
|
239
|
+
attr_writer :language
|
|
240
|
+
|
|
241
|
+
# Modified timestamp/date from page metadata, when present.
|
|
242
|
+
sig { returns(T.nilable(String)) }
|
|
243
|
+
attr_reader :modified_time
|
|
244
|
+
|
|
245
|
+
sig { params(modified_time: String).void }
|
|
246
|
+
attr_writer :modified_time
|
|
247
|
+
|
|
248
|
+
# Open Graph metadata with the og: prefix removed and keys camel-cased.
|
|
249
|
+
sig do
|
|
250
|
+
returns(
|
|
251
|
+
T.nilable(
|
|
252
|
+
T::Hash[
|
|
253
|
+
Symbol,
|
|
254
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
|
|
255
|
+
]
|
|
256
|
+
)
|
|
257
|
+
)
|
|
258
|
+
end
|
|
259
|
+
attr_reader :open_graph
|
|
260
|
+
|
|
261
|
+
sig do
|
|
262
|
+
params(
|
|
263
|
+
open_graph:
|
|
264
|
+
T::Hash[
|
|
265
|
+
Symbol,
|
|
266
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
|
|
267
|
+
]
|
|
268
|
+
).void
|
|
269
|
+
end
|
|
270
|
+
attr_writer :open_graph
|
|
271
|
+
|
|
272
|
+
# Published timestamp/date from page metadata, when present.
|
|
273
|
+
sig { returns(T.nilable(String)) }
|
|
274
|
+
attr_reader :published_time
|
|
275
|
+
|
|
276
|
+
sig { params(published_time: String).void }
|
|
277
|
+
attr_writer :published_time
|
|
278
|
+
|
|
279
|
+
# Robots meta directive, when present.
|
|
280
|
+
sig { returns(T.nilable(String)) }
|
|
281
|
+
attr_reader :robots
|
|
282
|
+
|
|
283
|
+
sig { params(robots: String).void }
|
|
284
|
+
attr_writer :robots
|
|
285
|
+
|
|
286
|
+
# Site or application name from page metadata.
|
|
287
|
+
sig { returns(T.nilable(String)) }
|
|
288
|
+
attr_reader :site_name
|
|
289
|
+
|
|
290
|
+
sig { params(site_name: String).void }
|
|
291
|
+
attr_writer :site_name
|
|
292
|
+
|
|
293
|
+
# Best title extracted from the page.
|
|
294
|
+
sig { returns(T.nilable(String)) }
|
|
295
|
+
attr_reader :title
|
|
296
|
+
|
|
297
|
+
sig { params(title: String).void }
|
|
298
|
+
attr_writer :title
|
|
299
|
+
|
|
300
|
+
# Twitter card metadata with the twitter: prefix removed and keys camel-cased.
|
|
301
|
+
sig do
|
|
302
|
+
returns(
|
|
303
|
+
T.nilable(
|
|
304
|
+
T::Hash[
|
|
305
|
+
Symbol,
|
|
306
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
|
|
307
|
+
]
|
|
308
|
+
)
|
|
309
|
+
)
|
|
310
|
+
end
|
|
311
|
+
attr_reader :twitter
|
|
312
|
+
|
|
313
|
+
sig do
|
|
314
|
+
params(
|
|
315
|
+
twitter:
|
|
316
|
+
T::Hash[
|
|
317
|
+
Symbol,
|
|
318
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
|
|
319
|
+
]
|
|
320
|
+
).void
|
|
321
|
+
end
|
|
322
|
+
attr_writer :twitter
|
|
323
|
+
|
|
324
|
+
# Metadata extracted from the scraped page HTML.
|
|
325
|
+
sig do
|
|
326
|
+
params(
|
|
327
|
+
final_url: String,
|
|
328
|
+
source_url: String,
|
|
329
|
+
additional_meta:
|
|
330
|
+
T::Hash[
|
|
331
|
+
Symbol,
|
|
332
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
|
|
333
|
+
],
|
|
334
|
+
alternates:
|
|
335
|
+
T::Array[
|
|
336
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate::OrHash
|
|
337
|
+
],
|
|
338
|
+
author: String,
|
|
339
|
+
canonical_url: String,
|
|
340
|
+
description: String,
|
|
341
|
+
favicon: String,
|
|
342
|
+
image: String,
|
|
343
|
+
json_ld: T::Array[T::Hash[Symbol, T.anything]],
|
|
344
|
+
keywords: T::Array[String],
|
|
345
|
+
language: String,
|
|
346
|
+
modified_time: String,
|
|
347
|
+
open_graph:
|
|
348
|
+
T::Hash[
|
|
349
|
+
Symbol,
|
|
350
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
|
|
351
|
+
],
|
|
352
|
+
published_time: String,
|
|
353
|
+
robots: String,
|
|
354
|
+
site_name: String,
|
|
355
|
+
title: String,
|
|
356
|
+
twitter:
|
|
357
|
+
T::Hash[
|
|
358
|
+
Symbol,
|
|
359
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
|
|
360
|
+
]
|
|
361
|
+
).returns(T.attached_class)
|
|
362
|
+
end
|
|
363
|
+
def self.new(
|
|
364
|
+
# Final URL scraped after redirects or scraper fallback, when known. Falls back to
|
|
365
|
+
# sourceUrl when unavailable.
|
|
366
|
+
final_url:,
|
|
367
|
+
# Original URL requested by the caller.
|
|
368
|
+
source_url:,
|
|
369
|
+
# Additional non-social meta tags not promoted to top-level metadata fields.
|
|
370
|
+
additional_meta: nil,
|
|
371
|
+
# Resolved alternate links from link rel=alternate tags.
|
|
372
|
+
alternates: nil,
|
|
373
|
+
# Author metadata, when present.
|
|
374
|
+
author: nil,
|
|
375
|
+
# Resolved canonical URL, when present.
|
|
376
|
+
canonical_url: nil,
|
|
377
|
+
# Best description extracted from standard, Open Graph, or Twitter metadata.
|
|
378
|
+
description: nil,
|
|
379
|
+
# Resolved favicon URL, when present.
|
|
380
|
+
favicon: nil,
|
|
381
|
+
# Primary resolved preview image from Open Graph, Twitter, or image metadata.
|
|
382
|
+
image: nil,
|
|
383
|
+
# JSON-LD structured data blocks parsed from the page.
|
|
384
|
+
json_ld: nil,
|
|
385
|
+
# Keywords extracted from the page's keywords meta tag.
|
|
386
|
+
keywords: nil,
|
|
387
|
+
# Language extracted from html lang or language meta tags.
|
|
388
|
+
language: nil,
|
|
389
|
+
# Modified timestamp/date from page metadata, when present.
|
|
390
|
+
modified_time: nil,
|
|
391
|
+
# Open Graph metadata with the og: prefix removed and keys camel-cased.
|
|
392
|
+
open_graph: nil,
|
|
393
|
+
# Published timestamp/date from page metadata, when present.
|
|
394
|
+
published_time: nil,
|
|
395
|
+
# Robots meta directive, when present.
|
|
396
|
+
robots: nil,
|
|
397
|
+
# Site or application name from page metadata.
|
|
398
|
+
site_name: nil,
|
|
399
|
+
# Best title extracted from the page.
|
|
400
|
+
title: nil,
|
|
401
|
+
# Twitter card metadata with the twitter: prefix removed and keys camel-cased.
|
|
402
|
+
twitter: nil
|
|
403
|
+
)
|
|
404
|
+
end
|
|
405
|
+
|
|
406
|
+
sig do
|
|
407
|
+
override.returns(
|
|
408
|
+
{
|
|
409
|
+
final_url: String,
|
|
410
|
+
source_url: String,
|
|
411
|
+
additional_meta:
|
|
412
|
+
T::Hash[
|
|
413
|
+
Symbol,
|
|
414
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
|
|
415
|
+
],
|
|
416
|
+
alternates:
|
|
417
|
+
T::Array[
|
|
418
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate
|
|
419
|
+
],
|
|
420
|
+
author: String,
|
|
421
|
+
canonical_url: String,
|
|
422
|
+
description: String,
|
|
423
|
+
favicon: String,
|
|
424
|
+
image: String,
|
|
425
|
+
json_ld: T::Array[T::Hash[Symbol, T.anything]],
|
|
426
|
+
keywords: T::Array[String],
|
|
427
|
+
language: String,
|
|
428
|
+
modified_time: String,
|
|
429
|
+
open_graph:
|
|
430
|
+
T::Hash[
|
|
431
|
+
Symbol,
|
|
432
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
|
|
433
|
+
],
|
|
434
|
+
published_time: String,
|
|
435
|
+
robots: String,
|
|
436
|
+
site_name: String,
|
|
437
|
+
title: String,
|
|
438
|
+
twitter:
|
|
439
|
+
T::Hash[
|
|
440
|
+
Symbol,
|
|
441
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
|
|
442
|
+
]
|
|
443
|
+
}
|
|
444
|
+
)
|
|
445
|
+
end
|
|
446
|
+
def to_hash
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
module AdditionalMeta
|
|
450
|
+
extend ContextDev::Internal::Type::Union
|
|
451
|
+
|
|
452
|
+
Variants = T.type_alias { T.any(String, T::Array[String]) }
|
|
453
|
+
|
|
454
|
+
sig do
|
|
455
|
+
override.returns(
|
|
456
|
+
T::Array[
|
|
457
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
|
|
458
|
+
]
|
|
459
|
+
)
|
|
460
|
+
end
|
|
461
|
+
def self.variants
|
|
462
|
+
end
|
|
463
|
+
|
|
464
|
+
StringArray =
|
|
465
|
+
T.let(
|
|
466
|
+
ContextDev::Internal::Type::ArrayOf[String],
|
|
467
|
+
ContextDev::Internal::Type::Converter
|
|
468
|
+
)
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
class Alternate < ContextDev::Internal::Type::BaseModel
|
|
472
|
+
OrHash =
|
|
473
|
+
T.type_alias do
|
|
474
|
+
T.any(
|
|
475
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate,
|
|
476
|
+
ContextDev::Internal::AnyHash
|
|
477
|
+
)
|
|
478
|
+
end
|
|
479
|
+
|
|
480
|
+
# Resolved alternate URL.
|
|
481
|
+
sig { returns(String) }
|
|
482
|
+
attr_accessor :href
|
|
483
|
+
|
|
484
|
+
# Language or locale for the alternate URL, when present.
|
|
485
|
+
sig { returns(T.nilable(String)) }
|
|
486
|
+
attr_reader :hreflang
|
|
487
|
+
|
|
488
|
+
sig { params(hreflang: String).void }
|
|
489
|
+
attr_writer :hreflang
|
|
490
|
+
|
|
491
|
+
# Alternate resource title, when present.
|
|
492
|
+
sig { returns(T.nilable(String)) }
|
|
493
|
+
attr_reader :title
|
|
494
|
+
|
|
495
|
+
sig { params(title: String).void }
|
|
496
|
+
attr_writer :title
|
|
497
|
+
|
|
498
|
+
# Alternate resource MIME type, when present.
|
|
499
|
+
sig { returns(T.nilable(String)) }
|
|
500
|
+
attr_reader :type
|
|
501
|
+
|
|
502
|
+
sig { params(type: String).void }
|
|
503
|
+
attr_writer :type
|
|
504
|
+
|
|
505
|
+
sig do
|
|
506
|
+
params(
|
|
507
|
+
href: String,
|
|
508
|
+
hreflang: String,
|
|
509
|
+
title: String,
|
|
510
|
+
type: String
|
|
511
|
+
).returns(T.attached_class)
|
|
512
|
+
end
|
|
513
|
+
def self.new(
|
|
514
|
+
# Resolved alternate URL.
|
|
515
|
+
href:,
|
|
516
|
+
# Language or locale for the alternate URL, when present.
|
|
517
|
+
hreflang: nil,
|
|
518
|
+
# Alternate resource title, when present.
|
|
519
|
+
title: nil,
|
|
520
|
+
# Alternate resource MIME type, when present.
|
|
521
|
+
type: nil
|
|
522
|
+
)
|
|
523
|
+
end
|
|
524
|
+
|
|
525
|
+
sig do
|
|
526
|
+
override.returns(
|
|
527
|
+
{ href: String, hreflang: String, title: String, type: String }
|
|
528
|
+
)
|
|
529
|
+
end
|
|
530
|
+
def to_hash
|
|
531
|
+
end
|
|
532
|
+
end
|
|
533
|
+
|
|
534
|
+
module OpenGraph
|
|
535
|
+
extend ContextDev::Internal::Type::Union
|
|
536
|
+
|
|
537
|
+
Variants = T.type_alias { T.any(String, T::Array[String]) }
|
|
538
|
+
|
|
539
|
+
sig do
|
|
540
|
+
override.returns(
|
|
541
|
+
T::Array[
|
|
542
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
|
|
543
|
+
]
|
|
544
|
+
)
|
|
545
|
+
end
|
|
546
|
+
def self.variants
|
|
547
|
+
end
|
|
548
|
+
|
|
549
|
+
StringArray =
|
|
550
|
+
T.let(
|
|
551
|
+
ContextDev::Internal::Type::ArrayOf[String],
|
|
552
|
+
ContextDev::Internal::Type::Converter
|
|
553
|
+
)
|
|
554
|
+
end
|
|
555
|
+
|
|
556
|
+
module Twitter
|
|
557
|
+
extend ContextDev::Internal::Type::Union
|
|
558
|
+
|
|
559
|
+
Variants = T.type_alias { T.any(String, T::Array[String]) }
|
|
560
|
+
|
|
561
|
+
sig do
|
|
562
|
+
override.returns(
|
|
563
|
+
T::Array[
|
|
564
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
|
|
565
|
+
]
|
|
566
|
+
)
|
|
567
|
+
end
|
|
568
|
+
def self.variants
|
|
569
|
+
end
|
|
570
|
+
|
|
571
|
+
StringArray =
|
|
572
|
+
T.let(
|
|
573
|
+
ContextDev::Internal::Type::ArrayOf[String],
|
|
574
|
+
ContextDev::Internal::Type::Converter
|
|
575
|
+
)
|
|
576
|
+
end
|
|
577
|
+
end
|
|
578
|
+
|
|
80
579
|
# Indicates success
|
|
81
580
|
module Success
|
|
82
581
|
extend ContextDev::Internal::Type::Enum
|
|
@@ -158,6 +657,16 @@ module ContextDev
|
|
|
158
657
|
:pdf,
|
|
159
658
|
ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
|
|
160
659
|
)
|
|
660
|
+
DOCX =
|
|
661
|
+
T.let(
|
|
662
|
+
:docx,
|
|
663
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
|
|
664
|
+
)
|
|
665
|
+
DOC =
|
|
666
|
+
T.let(
|
|
667
|
+
:doc,
|
|
668
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
|
|
669
|
+
)
|
|
161
670
|
|
|
162
671
|
sig do
|
|
163
672
|
override.returns(
|
|
@@ -169,6 +678,47 @@ module ContextDev
|
|
|
169
678
|
def self.values
|
|
170
679
|
end
|
|
171
680
|
end
|
|
681
|
+
|
|
682
|
+
class KeyMetadata < ContextDev::Internal::Type::BaseModel
|
|
683
|
+
OrHash =
|
|
684
|
+
T.type_alias do
|
|
685
|
+
T.any(
|
|
686
|
+
ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata,
|
|
687
|
+
ContextDev::Internal::AnyHash
|
|
688
|
+
)
|
|
689
|
+
end
|
|
690
|
+
|
|
691
|
+
# The number of credits consumed by this request.
|
|
692
|
+
sig { returns(Integer) }
|
|
693
|
+
attr_accessor :credits_consumed
|
|
694
|
+
|
|
695
|
+
# The number of credits remaining for your organization after this request.
|
|
696
|
+
sig { returns(Integer) }
|
|
697
|
+
attr_accessor :credits_remaining
|
|
698
|
+
|
|
699
|
+
# Metadata about the API key used for the request. Included in every response
|
|
700
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
701
|
+
sig do
|
|
702
|
+
params(credits_consumed: Integer, credits_remaining: Integer).returns(
|
|
703
|
+
T.attached_class
|
|
704
|
+
)
|
|
705
|
+
end
|
|
706
|
+
def self.new(
|
|
707
|
+
# The number of credits consumed by this request.
|
|
708
|
+
credits_consumed:,
|
|
709
|
+
# The number of credits remaining for your organization after this request.
|
|
710
|
+
credits_remaining:
|
|
711
|
+
)
|
|
712
|
+
end
|
|
713
|
+
|
|
714
|
+
sig do
|
|
715
|
+
override.returns(
|
|
716
|
+
{ credits_consumed: Integer, credits_remaining: Integer }
|
|
717
|
+
)
|
|
718
|
+
end
|
|
719
|
+
def to_hash
|
|
720
|
+
end
|
|
721
|
+
end
|
|
172
722
|
end
|
|
173
723
|
end
|
|
174
724
|
end
|
|
@@ -29,6 +29,23 @@ module ContextDev
|
|
|
29
29
|
sig { returns(String) }
|
|
30
30
|
attr_accessor :url
|
|
31
31
|
|
|
32
|
+
# Metadata about the API key used for the request. Included in every response
|
|
33
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
34
|
+
sig do
|
|
35
|
+
returns(
|
|
36
|
+
T.nilable(ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata)
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
attr_reader :key_metadata
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
params(
|
|
43
|
+
key_metadata:
|
|
44
|
+
ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata::OrHash
|
|
45
|
+
).void
|
|
46
|
+
end
|
|
47
|
+
attr_writer :key_metadata
|
|
48
|
+
|
|
32
49
|
sig do
|
|
33
50
|
params(
|
|
34
51
|
images:
|
|
@@ -37,7 +54,9 @@ module ContextDev
|
|
|
37
54
|
],
|
|
38
55
|
success:
|
|
39
56
|
ContextDev::Models::WebWebScrapeImagesResponse::Success::OrBoolean,
|
|
40
|
-
url: String
|
|
57
|
+
url: String,
|
|
58
|
+
key_metadata:
|
|
59
|
+
ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata::OrHash
|
|
41
60
|
).returns(T.attached_class)
|
|
42
61
|
end
|
|
43
62
|
def self.new(
|
|
@@ -46,7 +65,10 @@ module ContextDev
|
|
|
46
65
|
# Always true on success.
|
|
47
66
|
success:,
|
|
48
67
|
# Page URL that was scraped.
|
|
49
|
-
url
|
|
68
|
+
url:,
|
|
69
|
+
# Metadata about the API key used for the request. Included in every response
|
|
70
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
71
|
+
key_metadata: nil
|
|
50
72
|
)
|
|
51
73
|
end
|
|
52
74
|
|
|
@@ -57,7 +79,9 @@ module ContextDev
|
|
|
57
79
|
T::Array[ContextDev::Models::WebWebScrapeImagesResponse::Image],
|
|
58
80
|
success:
|
|
59
81
|
ContextDev::Models::WebWebScrapeImagesResponse::Success::TaggedBoolean,
|
|
60
|
-
url: String
|
|
82
|
+
url: String,
|
|
83
|
+
key_metadata:
|
|
84
|
+
ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata
|
|
61
85
|
}
|
|
62
86
|
)
|
|
63
87
|
end
|
|
@@ -459,6 +483,47 @@ module ContextDev
|
|
|
459
483
|
def self.values
|
|
460
484
|
end
|
|
461
485
|
end
|
|
486
|
+
|
|
487
|
+
class KeyMetadata < ContextDev::Internal::Type::BaseModel
|
|
488
|
+
OrHash =
|
|
489
|
+
T.type_alias do
|
|
490
|
+
T.any(
|
|
491
|
+
ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata,
|
|
492
|
+
ContextDev::Internal::AnyHash
|
|
493
|
+
)
|
|
494
|
+
end
|
|
495
|
+
|
|
496
|
+
# The number of credits consumed by this request.
|
|
497
|
+
sig { returns(Integer) }
|
|
498
|
+
attr_accessor :credits_consumed
|
|
499
|
+
|
|
500
|
+
# The number of credits remaining for your organization after this request.
|
|
501
|
+
sig { returns(Integer) }
|
|
502
|
+
attr_accessor :credits_remaining
|
|
503
|
+
|
|
504
|
+
# Metadata about the API key used for the request. Included in every response
|
|
505
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
506
|
+
sig do
|
|
507
|
+
params(credits_consumed: Integer, credits_remaining: Integer).returns(
|
|
508
|
+
T.attached_class
|
|
509
|
+
)
|
|
510
|
+
end
|
|
511
|
+
def self.new(
|
|
512
|
+
# The number of credits consumed by this request.
|
|
513
|
+
credits_consumed:,
|
|
514
|
+
# The number of credits remaining for your organization after this request.
|
|
515
|
+
credits_remaining:
|
|
516
|
+
)
|
|
517
|
+
end
|
|
518
|
+
|
|
519
|
+
sig do
|
|
520
|
+
override.returns(
|
|
521
|
+
{ credits_consumed: Integer, credits_remaining: Integer }
|
|
522
|
+
)
|
|
523
|
+
end
|
|
524
|
+
def to_hash
|
|
525
|
+
end
|
|
526
|
+
end
|
|
462
527
|
end
|
|
463
528
|
end
|
|
464
529
|
end
|