Class: Html2rss::RequestService::BotasaurusContract::Error
- Inherits:
-
Object
- Object
- Html2rss::RequestService::BotasaurusContract::Error
- Defined in:
- lib/html2rss/request_service/botasaurus_contract.rb
Overview
Parsed OpenAPI ScrapeError envelope (HTTP 400/403/422/502/504).
Instance Method Summary collapse
-
#challenge_block? ⇒ Boolean
True when upstream classified request as challenge blocked.
-
#challenge_message ⇒ String
Normalized challenge error message.
-
#failure_message ⇒ String
Actionable upstream failure summary.
-
#initialize(payload:, transport_status:) ⇒ Error
constructor
A new instance of Error.
-
#timeout? ⇒ Boolean
True when the scrape envelope reports a timeout.
Constructor Details
#initialize(payload:, transport_status:) ⇒ Error
Returns a new instance of Error.
165 166 167 168 169 170 171 |
# File 'lib/html2rss/request_service/botasaurus_contract.rb', line 165 def initialize(payload:, transport_status:) @payload = payload @transport_status = transport_status error error_category diagnostics end |
Instance Method Details
#challenge_block? ⇒ Boolean
Returns true when upstream classified request as challenge blocked.
174 |
# File 'lib/html2rss/request_service/botasaurus_contract.rb', line 174 def challenge_block? = error_category == 'challenge_block' |
#challenge_message ⇒ String
Returns normalized challenge error message.
182 183 184 185 |
# File 'lib/html2rss/request_service/botasaurus_contract.rb', line 182 def [error, challenge_marker].find { |value| value.is_a?(String) && !value.empty? } || 'Botasaurus challenge block detected.' end |
#failure_message ⇒ String
Returns actionable upstream failure summary.
188 189 190 191 192 |
# File 'lib/html2rss/request_service/botasaurus_contract.rb', line 188 def details = ["status=#{transport_status}", "error_category=#{error_category}", "error=#{error}"] details << "request_id=#{request_id}" if request_id "Botasaurus scrape failed (#{details.join(', ')})." end |
#timeout? ⇒ Boolean
Returns true when the scrape envelope reports a timeout.
177 178 179 |
# File 'lib/html2rss/request_service/botasaurus_contract.rb', line 177 def timeout? transport_status == 504 || error_category == 'timeout' end |