Fix various issues around OpenGraph representation of media (#14133)
- Fix audio attachments not being represented in OpenGraph tags - Fix audio being represented as "1 image" in OpenGraph descriptions - Fix video metadata being overwritten by paperclip-av-transcoder - Fix embedded player not using Mastodon's UI - Fix audio/video progress bars not moving smoothly - Fix audio/video buffered bars not displaying correctly
This commit is contained in:
@ -33,7 +33,7 @@
|
||||
= render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments }
|
||||
- elsif status.media_attachments.first.audio?
|
||||
- audio = status.media_attachments.first
|
||||
= react_component :audio, src: audio.file.url(:original), height: 130, alt: audio.description, preload: true, duration: audio.file.meta.dig(:original, :duration) do
|
||||
= react_component :audio, src: audio.file.url(:original), poster: full_asset_url(status.account.avatar_static_url), width: 670, height: 380, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) do
|
||||
= render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments }
|
||||
- else
|
||||
= react_component :media_gallery, height: 380, sensitive: status.sensitive?, standalone: true, autoplay: autoplay, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } do
|
||||
|
@ -27,12 +27,25 @@
|
||||
= opengraph 'og:video:height', media.file.meta.dig('original', 'height')
|
||||
= opengraph 'twitter:player:width', media.file.meta.dig('original', 'width')
|
||||
= opengraph 'twitter:player:height', media.file.meta.dig('original', 'height')
|
||||
- elsif media.audio?
|
||||
- player_card = true
|
||||
= opengraph 'og:image', full_asset_url(account.avatar.url(:original))
|
||||
= opengraph 'og:image:width', '400'
|
||||
= opengraph 'og:image:height','400'
|
||||
= opengraph 'og:audio', full_asset_url(media.file.url(:original))
|
||||
= opengraph 'og:audio:secure_url', full_asset_url(media.file.url(:original))
|
||||
= opengraph 'og:audio:type', media.file_content_type
|
||||
= opengraph 'twitter:player', medium_player_url(media)
|
||||
= opengraph 'twitter:player:stream', full_asset_url(media.file.url(:original))
|
||||
= opengraph 'twitter:player:stream:content_type', media.file_content_type
|
||||
= opengraph 'twitter:player:width', '670'
|
||||
= opengraph 'twitter:player:height', '380'
|
||||
- if player_card
|
||||
= opengraph 'twitter:card', 'player'
|
||||
- else
|
||||
= opengraph 'twitter:card', 'summary_large_image'
|
||||
- else
|
||||
= opengraph 'og:image', full_asset_url(account.avatar.url(:original))
|
||||
= opengraph 'og:image:width', '120'
|
||||
= opengraph 'og:image:height','120'
|
||||
= opengraph 'og:image:width', '400'
|
||||
= opengraph 'og:image:height','400'
|
||||
= opengraph 'twitter:card', 'summary'
|
||||
|
@ -37,7 +37,7 @@
|
||||
= render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments }
|
||||
- elsif status.media_attachments.first.audio?
|
||||
- audio = status.media_attachments.first
|
||||
= react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) do
|
||||
= react_component :audio, src: audio.file.url(:original), poster: full_asset_url(status.account.avatar_static_url), width: 610, height: 343, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) do
|
||||
= render partial: 'statuses/attachment_list', locals: { attachments: status.media_attachments }
|
||||
- else
|
||||
= react_component :media_gallery, height: 343, sensitive: status.sensitive?, autoplay: autoplay, media: status.media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } do
|
||||
|
Reference in New Issue
Block a user