brand.dev 0.24.0 → 0.26.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 +22 -0
- data/README.md +1 -1
- data/lib/brand_dev/models/brand_ai_product_response.rb +9 -1
- data/lib/brand_dev/models/brand_ai_products_response.rb +9 -1
- data/lib/brand_dev/models/brand_web_scrape_html_params.rb +22 -0
- data/lib/brand_dev/models/brand_web_scrape_html_response.rb +45 -0
- data/lib/brand_dev/models/brand_web_scrape_images_params.rb +22 -0
- data/lib/brand_dev/models/brand_web_scrape_images_response.rb +111 -0
- data/lib/brand_dev/models/brand_web_scrape_md_params.rb +42 -0
- data/lib/brand_dev/models/brand_web_scrape_md_response.rb +45 -0
- data/lib/brand_dev/models/brand_web_scrape_sitemap_params.rb +26 -0
- data/lib/brand_dev/models/brand_web_scrape_sitemap_response.rb +91 -0
- data/lib/brand_dev/models.rb +8 -0
- data/lib/brand_dev/resources/brand.rb +105 -0
- data/lib/brand_dev/version.rb +1 -1
- data/lib/brand_dev.rb +8 -0
- data/rbi/brand_dev/models/brand_ai_product_response.rbi +8 -0
- data/rbi/brand_dev/models/brand_ai_products_response.rbi +8 -0
- data/rbi/brand_dev/models/brand_web_scrape_html_params.rbi +40 -0
- data/rbi/brand_dev/models/brand_web_scrape_html_response.rbi +92 -0
- data/rbi/brand_dev/models/brand_web_scrape_images_params.rbi +43 -0
- data/rbi/brand_dev/models/brand_web_scrape_images_response.rbi +259 -0
- data/rbi/brand_dev/models/brand_web_scrape_md_params.rbi +67 -0
- data/rbi/brand_dev/models/brand_web_scrape_md_response.rbi +92 -0
- data/rbi/brand_dev/models/brand_web_scrape_sitemap_params.rbi +45 -0
- data/rbi/brand_dev/models/brand_web_scrape_sitemap_response.rbi +167 -0
- data/rbi/brand_dev/models.rbi +8 -0
- data/rbi/brand_dev/resources/brand.rbi +71 -0
- data/sig/brand_dev/models/brand_ai_product_response.rbs +5 -0
- data/sig/brand_dev/models/brand_ai_products_response.rbs +5 -0
- data/sig/brand_dev/models/brand_web_scrape_html_params.rbs +20 -0
- data/sig/brand_dev/models/brand_web_scrape_html_response.rbs +40 -0
- data/sig/brand_dev/models/brand_web_scrape_images_params.rbs +20 -0
- data/sig/brand_dev/models/brand_web_scrape_images_response.rbs +98 -0
- data/sig/brand_dev/models/brand_web_scrape_md_params.rbs +36 -0
- data/sig/brand_dev/models/brand_web_scrape_md_response.rbs +40 -0
- data/sig/brand_dev/models/brand_web_scrape_sitemap_params.rbs +23 -0
- data/sig/brand_dev/models/brand_web_scrape_sitemap_response.rbs +77 -0
- data/sig/brand_dev/models.rbs +8 -0
- data/sig/brand_dev/resources/brand.rbs +22 -0
- metadata +26 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: da2f382bfc60d07b03395142e31176eb88b2640e8a5eb2aa6f83156464d409ae
|
|
4
|
+
data.tar.gz: e8f182c0ae6057bce6ad230ccb2e36a6dfec2c1723e5135a2e5ada98841d7f28
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d7d6d1ffebf9c3cf4e7c5e1a2ff28278fde05b607679987c0d91ca6d0809919bdae6deb4ff39abda7e4f87dfaec83505f6cd4948632fab18e45ee711a5946a1c
|
|
7
|
+
data.tar.gz: 958e744b9d622e3c0f36f4cac53681a8bb85f3a4090b2e827b9e15d9b53f71cca873b916fda66a9eb931bb9626ced4f9314be30740d087b0aa32040c359066ae
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.26.0 (2026-02-23)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.25.0...v0.26.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.25.0...v0.26.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** manual updates ([bfe9b29](https://github.com/brand-dot-dev/ruby-sdk/commit/bfe9b298f2c51f4d2762da550344251c2b0b7256))
|
|
10
|
+
|
|
11
|
+
## 0.25.0 (2026-02-22)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v0.24.0...v0.25.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.24.0...v0.25.0)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **api:** api update ([a8001da](https://github.com/brand-dot-dev/ruby-sdk/commit/a8001da388a5bf764a6fe19b7df7bc3572ae3dce))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Chores
|
|
21
|
+
|
|
22
|
+
* **internal:** remove mock server code ([106d37c](https://github.com/brand-dot-dev/ruby-sdk/commit/106d37c53f7459910a897b4f675b97a003b73f7c))
|
|
23
|
+
* update mock server docs ([e60e130](https://github.com/brand-dot-dev/ruby-sdk/commit/e60e13027cec2ae0282f1ca4c4785d3586efe304))
|
|
24
|
+
|
|
3
25
|
## 0.24.0 (2026-02-09)
|
|
4
26
|
|
|
5
27
|
Full Changelog: [v0.23.0...v0.24.0](https://github.com/brand-dot-dev/ruby-sdk/compare/v0.23.0...v0.24.0)
|
data/README.md
CHANGED
|
@@ -58,6 +58,12 @@ module BrandDev
|
|
|
58
58
|
# @return [Array<String>]
|
|
59
59
|
required :features, BrandDev::Internal::Type::ArrayOf[String]
|
|
60
60
|
|
|
61
|
+
# @!attribute images
|
|
62
|
+
# URLs to product images on the page (up to 7)
|
|
63
|
+
#
|
|
64
|
+
# @return [Array<String>]
|
|
65
|
+
required :images, BrandDev::Internal::Type::ArrayOf[String]
|
|
66
|
+
|
|
61
67
|
# @!attribute name
|
|
62
68
|
# Name of the product
|
|
63
69
|
#
|
|
@@ -122,13 +128,15 @@ module BrandDev
|
|
|
122
128
|
# @return [String, nil]
|
|
123
129
|
optional :url, String, nil?: true
|
|
124
130
|
|
|
125
|
-
# @!method initialize(description:, features:, name:, tags:, target_audience:, billing_frequency: nil, category: nil, currency: nil, image_url: nil, price: nil, pricing_model: nil, url: nil)
|
|
131
|
+
# @!method initialize(description:, features:, images:, name:, tags:, target_audience:, billing_frequency: nil, category: nil, currency: nil, image_url: nil, price: nil, pricing_model: nil, url: nil)
|
|
126
132
|
# The extracted product data, or null if not a product page
|
|
127
133
|
#
|
|
128
134
|
# @param description [String] Description of the product
|
|
129
135
|
#
|
|
130
136
|
# @param features [Array<String>] List of product features
|
|
131
137
|
#
|
|
138
|
+
# @param images [Array<String>] URLs to product images on the page (up to 7)
|
|
139
|
+
#
|
|
132
140
|
# @param name [String] Name of the product
|
|
133
141
|
#
|
|
134
142
|
# @param tags [Array<String>] Tags associated with the product
|
|
@@ -27,6 +27,12 @@ module BrandDev
|
|
|
27
27
|
# @return [Array<String>]
|
|
28
28
|
required :features, BrandDev::Internal::Type::ArrayOf[String]
|
|
29
29
|
|
|
30
|
+
# @!attribute images
|
|
31
|
+
# URLs to product images on the page (up to 7)
|
|
32
|
+
#
|
|
33
|
+
# @return [Array<String>]
|
|
34
|
+
required :images, BrandDev::Internal::Type::ArrayOf[String]
|
|
35
|
+
|
|
30
36
|
# @!attribute name
|
|
31
37
|
# Name of the product
|
|
32
38
|
#
|
|
@@ -91,11 +97,13 @@ module BrandDev
|
|
|
91
97
|
# @return [String, nil]
|
|
92
98
|
optional :url, String, nil?: true
|
|
93
99
|
|
|
94
|
-
# @!method initialize(description:, features:, name:, tags:, target_audience:, billing_frequency: nil, category: nil, currency: nil, image_url: nil, price: nil, pricing_model: nil, url: nil)
|
|
100
|
+
# @!method initialize(description:, features:, images:, name:, tags:, target_audience:, billing_frequency: nil, category: nil, currency: nil, image_url: nil, price: nil, pricing_model: nil, url: nil)
|
|
95
101
|
# @param description [String] Description of the product
|
|
96
102
|
#
|
|
97
103
|
# @param features [Array<String>] List of product features
|
|
98
104
|
#
|
|
105
|
+
# @param images [Array<String>] URLs to product images on the page (up to 7)
|
|
106
|
+
#
|
|
99
107
|
# @param name [String] Name of the product
|
|
100
108
|
#
|
|
101
109
|
# @param tags [Array<String>] Tags associated with the product
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_html
|
|
6
|
+
class BrandWebScrapeHTMLParams < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
extend BrandDev::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include BrandDev::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute url
|
|
11
|
+
# Full URL to scrape (must include http:// or https:// protocol)
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :url, String
|
|
15
|
+
|
|
16
|
+
# @!method initialize(url:, request_options: {})
|
|
17
|
+
# @param url [String] Full URL to scrape (must include http:// or https:// protocol)
|
|
18
|
+
#
|
|
19
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_html
|
|
6
|
+
class BrandWebScrapeHTMLResponse < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute html
|
|
8
|
+
# Raw HTML content of the page
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :html, String
|
|
12
|
+
|
|
13
|
+
# @!attribute success
|
|
14
|
+
# Indicates success
|
|
15
|
+
#
|
|
16
|
+
# @return [Boolean, BrandDev::Models::BrandWebScrapeHTMLResponse::Success]
|
|
17
|
+
required :success, enum: -> { BrandDev::Models::BrandWebScrapeHTMLResponse::Success }
|
|
18
|
+
|
|
19
|
+
# @!attribute url
|
|
20
|
+
# The URL that was scraped
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
required :url, String
|
|
24
|
+
|
|
25
|
+
# @!method initialize(html:, success:, url:)
|
|
26
|
+
# @param html [String] Raw HTML content of the page
|
|
27
|
+
#
|
|
28
|
+
# @param success [Boolean, BrandDev::Models::BrandWebScrapeHTMLResponse::Success] Indicates success
|
|
29
|
+
#
|
|
30
|
+
# @param url [String] The URL that was scraped
|
|
31
|
+
|
|
32
|
+
# Indicates success
|
|
33
|
+
#
|
|
34
|
+
# @see BrandDev::Models::BrandWebScrapeHTMLResponse#success
|
|
35
|
+
module Success
|
|
36
|
+
extend BrandDev::Internal::Type::Enum
|
|
37
|
+
|
|
38
|
+
TRUE = true
|
|
39
|
+
|
|
40
|
+
# @!method self.values
|
|
41
|
+
# @return [Array<Boolean>]
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_images
|
|
6
|
+
class BrandWebScrapeImagesParams < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
extend BrandDev::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include BrandDev::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute url
|
|
11
|
+
# Full URL to scrape images from (must include http:// or https:// protocol)
|
|
12
|
+
#
|
|
13
|
+
# @return [String]
|
|
14
|
+
required :url, String
|
|
15
|
+
|
|
16
|
+
# @!method initialize(url:, request_options: {})
|
|
17
|
+
# @param url [String] Full URL to scrape images from (must include http:// or https:// protocol)
|
|
18
|
+
#
|
|
19
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_images
|
|
6
|
+
class BrandWebScrapeImagesResponse < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute images
|
|
8
|
+
# Array of scraped images
|
|
9
|
+
#
|
|
10
|
+
# @return [Array<BrandDev::Models::BrandWebScrapeImagesResponse::Image>]
|
|
11
|
+
required :images,
|
|
12
|
+
-> { BrandDev::Internal::Type::ArrayOf[BrandDev::Models::BrandWebScrapeImagesResponse::Image] }
|
|
13
|
+
|
|
14
|
+
# @!attribute success
|
|
15
|
+
# Indicates success
|
|
16
|
+
#
|
|
17
|
+
# @return [Boolean, BrandDev::Models::BrandWebScrapeImagesResponse::Success]
|
|
18
|
+
required :success, enum: -> { BrandDev::Models::BrandWebScrapeImagesResponse::Success }
|
|
19
|
+
|
|
20
|
+
# @!attribute url
|
|
21
|
+
# The URL that was scraped
|
|
22
|
+
#
|
|
23
|
+
# @return [String]
|
|
24
|
+
required :url, String
|
|
25
|
+
|
|
26
|
+
# @!method initialize(images:, success:, url:)
|
|
27
|
+
# @param images [Array<BrandDev::Models::BrandWebScrapeImagesResponse::Image>] Array of scraped images
|
|
28
|
+
#
|
|
29
|
+
# @param success [Boolean, BrandDev::Models::BrandWebScrapeImagesResponse::Success] Indicates success
|
|
30
|
+
#
|
|
31
|
+
# @param url [String] The URL that was scraped
|
|
32
|
+
|
|
33
|
+
class Image < BrandDev::Internal::Type::BaseModel
|
|
34
|
+
# @!attribute alt
|
|
35
|
+
# Alt text of the image, or null if not present
|
|
36
|
+
#
|
|
37
|
+
# @return [String, nil]
|
|
38
|
+
required :alt, String, nil?: true
|
|
39
|
+
|
|
40
|
+
# @!attribute element
|
|
41
|
+
# The HTML element the image was found in
|
|
42
|
+
#
|
|
43
|
+
# @return [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Element]
|
|
44
|
+
required :element, enum: -> { BrandDev::Models::BrandWebScrapeImagesResponse::Image::Element }
|
|
45
|
+
|
|
46
|
+
# @!attribute src
|
|
47
|
+
# The image source - can be a URL, inline HTML (for SVGs), or a base64 data URI
|
|
48
|
+
#
|
|
49
|
+
# @return [String]
|
|
50
|
+
required :src, String
|
|
51
|
+
|
|
52
|
+
# @!attribute type
|
|
53
|
+
# The type/format of the src value
|
|
54
|
+
#
|
|
55
|
+
# @return [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Type]
|
|
56
|
+
required :type, enum: -> { BrandDev::Models::BrandWebScrapeImagesResponse::Image::Type }
|
|
57
|
+
|
|
58
|
+
# @!method initialize(alt:, element:, src:, type:)
|
|
59
|
+
# @param alt [String, nil] Alt text of the image, or null if not present
|
|
60
|
+
#
|
|
61
|
+
# @param element [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Element] The HTML element the image was found in
|
|
62
|
+
#
|
|
63
|
+
# @param src [String] The image source - can be a URL, inline HTML (for SVGs), or a base64 data URI
|
|
64
|
+
#
|
|
65
|
+
# @param type [Symbol, BrandDev::Models::BrandWebScrapeImagesResponse::Image::Type] The type/format of the src value
|
|
66
|
+
|
|
67
|
+
# The HTML element the image was found in
|
|
68
|
+
#
|
|
69
|
+
# @see BrandDev::Models::BrandWebScrapeImagesResponse::Image#element
|
|
70
|
+
module Element
|
|
71
|
+
extend BrandDev::Internal::Type::Enum
|
|
72
|
+
|
|
73
|
+
IMG = :img
|
|
74
|
+
SVG = :svg
|
|
75
|
+
LINK = :link
|
|
76
|
+
SOURCE = :source
|
|
77
|
+
VIDEO = :video
|
|
78
|
+
|
|
79
|
+
# @!method self.values
|
|
80
|
+
# @return [Array<Symbol>]
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# The type/format of the src value
|
|
84
|
+
#
|
|
85
|
+
# @see BrandDev::Models::BrandWebScrapeImagesResponse::Image#type
|
|
86
|
+
module Type
|
|
87
|
+
extend BrandDev::Internal::Type::Enum
|
|
88
|
+
|
|
89
|
+
URL = :url
|
|
90
|
+
HTML = :html
|
|
91
|
+
BASE64 = :base64
|
|
92
|
+
|
|
93
|
+
# @!method self.values
|
|
94
|
+
# @return [Array<Symbol>]
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Indicates success
|
|
99
|
+
#
|
|
100
|
+
# @see BrandDev::Models::BrandWebScrapeImagesResponse#success
|
|
101
|
+
module Success
|
|
102
|
+
extend BrandDev::Internal::Type::Enum
|
|
103
|
+
|
|
104
|
+
TRUE = true
|
|
105
|
+
|
|
106
|
+
# @!method self.values
|
|
107
|
+
# @return [Array<Boolean>]
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_md
|
|
6
|
+
class BrandWebScrapeMdParams < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
extend BrandDev::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include BrandDev::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute url
|
|
11
|
+
# Full URL to scrape and convert to markdown (must include http:// or https://
|
|
12
|
+
# protocol)
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
required :url, String
|
|
16
|
+
|
|
17
|
+
# @!attribute include_images
|
|
18
|
+
# Include image references in Markdown output
|
|
19
|
+
#
|
|
20
|
+
# @return [Boolean, nil]
|
|
21
|
+
optional :include_images, BrandDev::Internal::Type::Boolean
|
|
22
|
+
|
|
23
|
+
# @!attribute include_links
|
|
24
|
+
# Preserve hyperlinks in Markdown output
|
|
25
|
+
#
|
|
26
|
+
# @return [Boolean, nil]
|
|
27
|
+
optional :include_links, BrandDev::Internal::Type::Boolean
|
|
28
|
+
|
|
29
|
+
# @!method initialize(url:, include_images: nil, include_links: nil, request_options: {})
|
|
30
|
+
# Some parameter documentations has been truncated, see
|
|
31
|
+
# {BrandDev::Models::BrandWebScrapeMdParams} for more details.
|
|
32
|
+
#
|
|
33
|
+
# @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro
|
|
34
|
+
#
|
|
35
|
+
# @param include_images [Boolean] Include image references in Markdown output
|
|
36
|
+
#
|
|
37
|
+
# @param include_links [Boolean] Preserve hyperlinks in Markdown output
|
|
38
|
+
#
|
|
39
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_md
|
|
6
|
+
class BrandWebScrapeMdResponse < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute markdown
|
|
8
|
+
# Page content converted to GitHub Flavored Markdown
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :markdown, String
|
|
12
|
+
|
|
13
|
+
# @!attribute success
|
|
14
|
+
# Indicates success
|
|
15
|
+
#
|
|
16
|
+
# @return [Boolean, BrandDev::Models::BrandWebScrapeMdResponse::Success]
|
|
17
|
+
required :success, enum: -> { BrandDev::Models::BrandWebScrapeMdResponse::Success }
|
|
18
|
+
|
|
19
|
+
# @!attribute url
|
|
20
|
+
# The URL that was scraped
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
required :url, String
|
|
24
|
+
|
|
25
|
+
# @!method initialize(markdown:, success:, url:)
|
|
26
|
+
# @param markdown [String] Page content converted to GitHub Flavored Markdown
|
|
27
|
+
#
|
|
28
|
+
# @param success [Boolean, BrandDev::Models::BrandWebScrapeMdResponse::Success] Indicates success
|
|
29
|
+
#
|
|
30
|
+
# @param url [String] The URL that was scraped
|
|
31
|
+
|
|
32
|
+
# Indicates success
|
|
33
|
+
#
|
|
34
|
+
# @see BrandDev::Models::BrandWebScrapeMdResponse#success
|
|
35
|
+
module Success
|
|
36
|
+
extend BrandDev::Internal::Type::Enum
|
|
37
|
+
|
|
38
|
+
TRUE = true
|
|
39
|
+
|
|
40
|
+
# @!method self.values
|
|
41
|
+
# @return [Array<Boolean>]
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_sitemap
|
|
6
|
+
class BrandWebScrapeSitemapParams < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
extend BrandDev::Internal::Type::RequestParameters::Converter
|
|
8
|
+
include BrandDev::Internal::Type::RequestParameters
|
|
9
|
+
|
|
10
|
+
# @!attribute domain
|
|
11
|
+
# Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be
|
|
12
|
+
# automatically normalized and validated.
|
|
13
|
+
#
|
|
14
|
+
# @return [String]
|
|
15
|
+
required :domain, String
|
|
16
|
+
|
|
17
|
+
# @!method initialize(domain:, request_options: {})
|
|
18
|
+
# Some parameter documentations has been truncated, see
|
|
19
|
+
# {BrandDev::Models::BrandWebScrapeSitemapParams} for more details.
|
|
20
|
+
#
|
|
21
|
+
# @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto
|
|
22
|
+
#
|
|
23
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BrandDev
|
|
4
|
+
module Models
|
|
5
|
+
# @see BrandDev::Resources::Brand#web_scrape_sitemap
|
|
6
|
+
class BrandWebScrapeSitemapResponse < BrandDev::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute domain
|
|
8
|
+
# The normalized domain that was crawled
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :domain, String
|
|
12
|
+
|
|
13
|
+
# @!attribute meta
|
|
14
|
+
# Metadata about the sitemap crawl operation
|
|
15
|
+
#
|
|
16
|
+
# @return [BrandDev::Models::BrandWebScrapeSitemapResponse::Meta]
|
|
17
|
+
required :meta, -> { BrandDev::Models::BrandWebScrapeSitemapResponse::Meta }
|
|
18
|
+
|
|
19
|
+
# @!attribute success
|
|
20
|
+
# Indicates success
|
|
21
|
+
#
|
|
22
|
+
# @return [Boolean, BrandDev::Models::BrandWebScrapeSitemapResponse::Success]
|
|
23
|
+
required :success, enum: -> { BrandDev::Models::BrandWebScrapeSitemapResponse::Success }
|
|
24
|
+
|
|
25
|
+
# @!attribute urls
|
|
26
|
+
# Array of discovered page URLs from the sitemap (max 500)
|
|
27
|
+
#
|
|
28
|
+
# @return [Array<String>]
|
|
29
|
+
required :urls, BrandDev::Internal::Type::ArrayOf[String]
|
|
30
|
+
|
|
31
|
+
# @!method initialize(domain:, meta:, success:, urls:)
|
|
32
|
+
# @param domain [String] The normalized domain that was crawled
|
|
33
|
+
#
|
|
34
|
+
# @param meta [BrandDev::Models::BrandWebScrapeSitemapResponse::Meta] Metadata about the sitemap crawl operation
|
|
35
|
+
#
|
|
36
|
+
# @param success [Boolean, BrandDev::Models::BrandWebScrapeSitemapResponse::Success] Indicates success
|
|
37
|
+
#
|
|
38
|
+
# @param urls [Array<String>] Array of discovered page URLs from the sitemap (max 500)
|
|
39
|
+
|
|
40
|
+
# @see BrandDev::Models::BrandWebScrapeSitemapResponse#meta
|
|
41
|
+
class Meta < BrandDev::Internal::Type::BaseModel
|
|
42
|
+
# @!attribute errors
|
|
43
|
+
# Number of errors encountered during crawling
|
|
44
|
+
#
|
|
45
|
+
# @return [Integer]
|
|
46
|
+
required :errors, Integer
|
|
47
|
+
|
|
48
|
+
# @!attribute sitemaps_discovered
|
|
49
|
+
# Total number of sitemap files discovered
|
|
50
|
+
#
|
|
51
|
+
# @return [Integer]
|
|
52
|
+
required :sitemaps_discovered, Integer, api_name: :sitemapsDiscovered
|
|
53
|
+
|
|
54
|
+
# @!attribute sitemaps_fetched
|
|
55
|
+
# Number of sitemap files successfully fetched and parsed
|
|
56
|
+
#
|
|
57
|
+
# @return [Integer]
|
|
58
|
+
required :sitemaps_fetched, Integer, api_name: :sitemapsFetched
|
|
59
|
+
|
|
60
|
+
# @!attribute sitemaps_skipped
|
|
61
|
+
# Number of sitemap files skipped (due to errors, timeouts, or limits)
|
|
62
|
+
#
|
|
63
|
+
# @return [Integer]
|
|
64
|
+
required :sitemaps_skipped, Integer, api_name: :sitemapsSkipped
|
|
65
|
+
|
|
66
|
+
# @!method initialize(errors:, sitemaps_discovered:, sitemaps_fetched:, sitemaps_skipped:)
|
|
67
|
+
# Metadata about the sitemap crawl operation
|
|
68
|
+
#
|
|
69
|
+
# @param errors [Integer] Number of errors encountered during crawling
|
|
70
|
+
#
|
|
71
|
+
# @param sitemaps_discovered [Integer] Total number of sitemap files discovered
|
|
72
|
+
#
|
|
73
|
+
# @param sitemaps_fetched [Integer] Number of sitemap files successfully fetched and parsed
|
|
74
|
+
#
|
|
75
|
+
# @param sitemaps_skipped [Integer] Number of sitemap files skipped (due to errors, timeouts, or limits)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# Indicates success
|
|
79
|
+
#
|
|
80
|
+
# @see BrandDev::Models::BrandWebScrapeSitemapResponse#success
|
|
81
|
+
module Success
|
|
82
|
+
extend BrandDev::Internal::Type::Enum
|
|
83
|
+
|
|
84
|
+
TRUE = true
|
|
85
|
+
|
|
86
|
+
# @!method self.values
|
|
87
|
+
# @return [Array<Boolean>]
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
data/lib/brand_dev/models.rb
CHANGED
|
@@ -70,4 +70,12 @@ module BrandDev
|
|
|
70
70
|
BrandScreenshotParams = BrandDev::Models::BrandScreenshotParams
|
|
71
71
|
|
|
72
72
|
BrandStyleguideParams = BrandDev::Models::BrandStyleguideParams
|
|
73
|
+
|
|
74
|
+
BrandWebScrapeHTMLParams = BrandDev::Models::BrandWebScrapeHTMLParams
|
|
75
|
+
|
|
76
|
+
BrandWebScrapeImagesParams = BrandDev::Models::BrandWebScrapeImagesParams
|
|
77
|
+
|
|
78
|
+
BrandWebScrapeMdParams = BrandDev::Models::BrandWebScrapeMdParams
|
|
79
|
+
|
|
80
|
+
BrandWebScrapeSitemapParams = BrandDev::Models::BrandWebScrapeSitemapParams
|
|
73
81
|
end
|
|
@@ -521,6 +521,111 @@ module BrandDev
|
|
|
521
521
|
)
|
|
522
522
|
end
|
|
523
523
|
|
|
524
|
+
# Scrapes the given URL and returns the raw HTML content of the page. Uses
|
|
525
|
+
# automatic proxy escalation to handle blocked sites.
|
|
526
|
+
#
|
|
527
|
+
# @overload web_scrape_html(url:, request_options: {})
|
|
528
|
+
#
|
|
529
|
+
# @param url [String] Full URL to scrape (must include http:// or https:// protocol)
|
|
530
|
+
#
|
|
531
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
532
|
+
#
|
|
533
|
+
# @return [BrandDev::Models::BrandWebScrapeHTMLResponse]
|
|
534
|
+
#
|
|
535
|
+
# @see BrandDev::Models::BrandWebScrapeHTMLParams
|
|
536
|
+
def web_scrape_html(params)
|
|
537
|
+
parsed, options = BrandDev::BrandWebScrapeHTMLParams.dump_request(params)
|
|
538
|
+
@client.request(
|
|
539
|
+
method: :get,
|
|
540
|
+
path: "web/scrape/html",
|
|
541
|
+
query: parsed,
|
|
542
|
+
model: BrandDev::Models::BrandWebScrapeHTMLResponse,
|
|
543
|
+
options: options
|
|
544
|
+
)
|
|
545
|
+
end
|
|
546
|
+
|
|
547
|
+
# Scrapes all images from the given URL. Extracts images from img, svg,
|
|
548
|
+
# picture/source, link, and video elements including inline SVGs, base64 data
|
|
549
|
+
# URIs, and standard URLs.
|
|
550
|
+
#
|
|
551
|
+
# @overload web_scrape_images(url:, request_options: {})
|
|
552
|
+
#
|
|
553
|
+
# @param url [String] Full URL to scrape images from (must include http:// or https:// protocol)
|
|
554
|
+
#
|
|
555
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
556
|
+
#
|
|
557
|
+
# @return [BrandDev::Models::BrandWebScrapeImagesResponse]
|
|
558
|
+
#
|
|
559
|
+
# @see BrandDev::Models::BrandWebScrapeImagesParams
|
|
560
|
+
def web_scrape_images(params)
|
|
561
|
+
parsed, options = BrandDev::BrandWebScrapeImagesParams.dump_request(params)
|
|
562
|
+
@client.request(
|
|
563
|
+
method: :get,
|
|
564
|
+
path: "web/scrape/images",
|
|
565
|
+
query: parsed,
|
|
566
|
+
model: BrandDev::Models::BrandWebScrapeImagesResponse,
|
|
567
|
+
options: options
|
|
568
|
+
)
|
|
569
|
+
end
|
|
570
|
+
|
|
571
|
+
# Some parameter documentations has been truncated, see
|
|
572
|
+
# {BrandDev::Models::BrandWebScrapeMdParams} for more details.
|
|
573
|
+
#
|
|
574
|
+
# Scrapes the given URL, converts the HTML content to GitHub Flavored Markdown
|
|
575
|
+
# (GFM), and returns the result. Uses automatic proxy escalation to handle blocked
|
|
576
|
+
# sites.
|
|
577
|
+
#
|
|
578
|
+
# @overload web_scrape_md(url:, include_images: nil, include_links: nil, request_options: {})
|
|
579
|
+
#
|
|
580
|
+
# @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro
|
|
581
|
+
#
|
|
582
|
+
# @param include_images [Boolean] Include image references in Markdown output
|
|
583
|
+
#
|
|
584
|
+
# @param include_links [Boolean] Preserve hyperlinks in Markdown output
|
|
585
|
+
#
|
|
586
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
587
|
+
#
|
|
588
|
+
# @return [BrandDev::Models::BrandWebScrapeMdResponse]
|
|
589
|
+
#
|
|
590
|
+
# @see BrandDev::Models::BrandWebScrapeMdParams
|
|
591
|
+
def web_scrape_md(params)
|
|
592
|
+
parsed, options = BrandDev::BrandWebScrapeMdParams.dump_request(params)
|
|
593
|
+
@client.request(
|
|
594
|
+
method: :get,
|
|
595
|
+
path: "web/scrape/markdown",
|
|
596
|
+
query: parsed.transform_keys(include_images: "includeImages", include_links: "includeLinks"),
|
|
597
|
+
model: BrandDev::Models::BrandWebScrapeMdResponse,
|
|
598
|
+
options: options
|
|
599
|
+
)
|
|
600
|
+
end
|
|
601
|
+
|
|
602
|
+
# Some parameter documentations has been truncated, see
|
|
603
|
+
# {BrandDev::Models::BrandWebScrapeSitemapParams} for more details.
|
|
604
|
+
#
|
|
605
|
+
# Crawls the sitemap of the given domain and returns all discovered page URLs.
|
|
606
|
+
# Supports sitemap index files (recursive), parallel fetching with concurrency
|
|
607
|
+
# control, deduplication, and filters out non-page resources (images, PDFs, etc.).
|
|
608
|
+
#
|
|
609
|
+
# @overload web_scrape_sitemap(domain:, request_options: {})
|
|
610
|
+
#
|
|
611
|
+
# @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto
|
|
612
|
+
#
|
|
613
|
+
# @param request_options [BrandDev::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
614
|
+
#
|
|
615
|
+
# @return [BrandDev::Models::BrandWebScrapeSitemapResponse]
|
|
616
|
+
#
|
|
617
|
+
# @see BrandDev::Models::BrandWebScrapeSitemapParams
|
|
618
|
+
def web_scrape_sitemap(params)
|
|
619
|
+
parsed, options = BrandDev::BrandWebScrapeSitemapParams.dump_request(params)
|
|
620
|
+
@client.request(
|
|
621
|
+
method: :get,
|
|
622
|
+
path: "web/scrape/sitemap",
|
|
623
|
+
query: parsed,
|
|
624
|
+
model: BrandDev::Models::BrandWebScrapeSitemapResponse,
|
|
625
|
+
options: options
|
|
626
|
+
)
|
|
627
|
+
end
|
|
628
|
+
|
|
524
629
|
# @api private
|
|
525
630
|
#
|
|
526
631
|
# @param client [BrandDev::Client]
|
data/lib/brand_dev/version.rb
CHANGED
data/lib/brand_dev.rb
CHANGED
|
@@ -84,5 +84,13 @@ require_relative "brand_dev/models/brand_screenshot_params"
|
|
|
84
84
|
require_relative "brand_dev/models/brand_screenshot_response"
|
|
85
85
|
require_relative "brand_dev/models/brand_styleguide_params"
|
|
86
86
|
require_relative "brand_dev/models/brand_styleguide_response"
|
|
87
|
+
require_relative "brand_dev/models/brand_web_scrape_html_params"
|
|
88
|
+
require_relative "brand_dev/models/brand_web_scrape_html_response"
|
|
89
|
+
require_relative "brand_dev/models/brand_web_scrape_images_params"
|
|
90
|
+
require_relative "brand_dev/models/brand_web_scrape_images_response"
|
|
91
|
+
require_relative "brand_dev/models/brand_web_scrape_md_params"
|
|
92
|
+
require_relative "brand_dev/models/brand_web_scrape_md_response"
|
|
93
|
+
require_relative "brand_dev/models/brand_web_scrape_sitemap_params"
|
|
94
|
+
require_relative "brand_dev/models/brand_web_scrape_sitemap_response"
|
|
87
95
|
require_relative "brand_dev/models"
|
|
88
96
|
require_relative "brand_dev/resources/brand"
|