diff options
author | Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> | 2017-12-07 11:37:43 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-12-07 03:37:43 +0100 |
commit | c083816c2479dcdfa6674c47a75a8293bf64a947 (patch) | |
tree | dddc1ffa56dae8a8856ec9c80af049beb5e66046 /app | |
parent | 432761f37574b4e4159283f595e6c094b7bde449 (diff) |
Add embed_url to preview cards (#5775)
Diffstat (limited to 'app')
-rw-r--r-- | app/javascript/mastodon/features/status/components/card.js | 2 | ||||
-rw-r--r-- | app/models/preview_card.rb | 1 | ||||
-rw-r--r-- | app/serializers/rest/preview_card_serializer.rb | 2 | ||||
-rw-r--r-- | app/services/fetch_link_card_service.rb | 9 |
4 files changed, 6 insertions, 8 deletions
diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.js index 680bf63ab..d3e322c36 100644 --- a/app/javascript/mastodon/features/status/components/card.js +++ b/app/javascript/mastodon/features/status/components/card.js @@ -101,7 +101,7 @@ export default class Card extends React.PureComponent { onClick={this.handlePhotoClick} role='button' tabIndex='0' - src={card.get('url')} + src={card.get('embed_url')} alt={card.get('title')} width={card.get('width')} height={card.get('height')} diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index e2bf65d94..5baddba8a 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -21,6 +21,7 @@ # height :integer default(0), not null # created_at :datetime not null # updated_at :datetime not null +# embed_url :string default(""), not null # class PreviewCard < ApplicationRecord diff --git a/app/serializers/rest/preview_card_serializer.rb b/app/serializers/rest/preview_card_serializer.rb index 9c460332c..2df9d07a7 100644 --- a/app/serializers/rest/preview_card_serializer.rb +++ b/app/serializers/rest/preview_card_serializer.rb @@ -6,7 +6,7 @@ class REST::PreviewCardSerializer < ActiveModel::Serializer attributes :url, :title, :description, :type, :author_name, :author_url, :provider_name, :provider_url, :html, :width, :height, - :image + :image, :embed_url def image object.image? ? full_asset_url(object.image.url(:original)) : nil diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 37cf75379..cec96d927 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -74,9 +74,6 @@ class FetchLinkCardService < BaseService return false unless response.respond_to?(:type) - # The photo will change the URL. So, to avoid duplication of URLs, PreviewCard needs to be checked again. - @card = PreviewCard.find_by(url: response.url) || @card if response.type == 'photo' - @card.type = response.type @card.title = response.respond_to?(:title) ? response.title : '' @card.author_name = response.respond_to?(:author_name) ? response.author_name : '' @@ -90,9 +87,9 @@ class FetchLinkCardService < BaseService when 'link' @card.image = URI.parse(response.thumbnail_url) if response.respond_to?(:thumbnail_url) when 'photo' - @card.url = response.url - @card.width = response.width.presence || 0 - @card.height = response.height.presence || 0 + @card.embed_url = response.url + @card.width = response.width.presence || 0 + @card.height = response.height.presence || 0 when 'video' @card.width = response.width.presence || 0 @card.height = response.height.presence || 0 |