mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FIX: Support new layout on Amazon product pages (#16091)
Some product pages on Amazon are using a new HTML structure, meaning the previous Onebox engine was unable to gather the price and/or description. This change should allow these pages to be Oneboxed.
This commit is contained in:
@ -124,7 +124,12 @@ module Onebox
|
||||
elsif !raw.css("#priceblock_ourprice").inner_text.empty?
|
||||
raw.css("#priceblock_ourprice").inner_text
|
||||
else
|
||||
raw.css(".mediaMatrixListItem.a-active .a-color-price").inner_text
|
||||
result = raw.css('#corePrice_feature_div .a-price .a-offscreen').inner_text
|
||||
if result.blank?
|
||||
result = raw.css(".mediaMatrixListItem.a-active .a-color-price").inner_text
|
||||
end
|
||||
|
||||
result
|
||||
end
|
||||
end
|
||||
|
||||
@ -215,8 +220,10 @@ module Onebox
|
||||
|
||||
summary = raw.at("#productDescription")
|
||||
|
||||
description = og.description || summary&.inner_text
|
||||
description ||= raw.css("meta[name=description]").first&.[]("content")
|
||||
description = og.description || summary&.inner_text&.strip
|
||||
if description.blank?
|
||||
description = raw.css("meta[name=description]").first&.[]("content")
|
||||
end
|
||||
result[:description] = CGI.unescapeHTML(Onebox::Helpers.truncate(description, 250)) if description
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user