diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-02-15 07:04:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-15 07:04:28 +0100 |
commit | f7765acf9d92951a616f41b738d5d23ede58c162 (patch) | |
tree | 102882ed932d7f352720c3fd6789c04a15054f39 /app/services | |
parent | ecdac9017efceb77da155bf85d5e7d6084382da2 (diff) |
Fix #5173: Click card to embed external content (#6471)
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/fetch_link_card_service.rb | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 3e31a4145..8f252e64c 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -94,14 +94,16 @@ class FetchLinkCardService < BaseService @card.image_remote_url = embed.thumbnail_url if embed.respond_to?(:thumbnail_url) when 'photo' return false unless embed.respond_to?(:url) + @card.embed_url = embed.url @card.image_remote_url = embed.url @card.width = embed.width.presence || 0 @card.height = embed.height.presence || 0 when 'video' - @card.width = embed.width.presence || 0 - @card.height = embed.height.presence || 0 - @card.html = Formatter.instance.sanitize(embed.html, Sanitize::Config::MASTODON_OEMBED) + @card.width = embed.width.presence || 0 + @card.height = embed.height.presence || 0 + @card.html = Formatter.instance.sanitize(embed.html, Sanitize::Config::MASTODON_OEMBED) + @card.image_remote_url = embed.thumbnail_url if embed.respond_to?(:thumbnail_url) when 'rich' # Most providers rely on <script> tags, which is a no-no return false @@ -130,12 +132,12 @@ class FetchLinkCardService < BaseService scrolling: 'no', frameborder: '0') else - @card.type = :link - @card.image_remote_url = meta_property(page, 'og:image') if meta_property(page, 'og:image') + @card.type = :link end - @card.title = meta_property(page, 'og:title').presence || page.at_xpath('//title')&.content || '' - @card.description = meta_property(page, 'og:description').presence || meta_property(page, 'description') || '' + @card.title = meta_property(page, 'og:title').presence || page.at_xpath('//title')&.content || '' + @card.description = meta_property(page, 'og:description').presence || meta_property(page, 'description') || '' + @card.image_remote_url = meta_property(page, 'og:image') if meta_property(page, 'og:image') return if @card.title.blank? && @card.html.blank? |