Merge remote-tracking branch 'origin/master' into gs-master
Conflicts: config/i18n-tasks.yml
This commit is contained in:
commit
ab04be2f84
|
@ -29,6 +29,35 @@ module StreamEntriesHelper
|
||||||
[prepend_str, account.note].join(' · ')
|
[prepend_str, account.note].join(' · ')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def media_summary(status)
|
||||||
|
attachments = { image: 0, video: 0 }
|
||||||
|
|
||||||
|
status.media_attachments.each do |media|
|
||||||
|
if media.video?
|
||||||
|
attachments[:video] += 1
|
||||||
|
else
|
||||||
|
attachments[:image] += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
text = attachments.to_a.reject { |_, value| value.zero? }.map { |key, value| t("statuses.attached.#{key}", count: value) }.join(' · ')
|
||||||
|
|
||||||
|
return if text.blank?
|
||||||
|
|
||||||
|
t('statuses.attached.description', attached: text)
|
||||||
|
end
|
||||||
|
|
||||||
|
def status_text_summary(status)
|
||||||
|
return if status.spoiler_text.blank?
|
||||||
|
t('statuses.content_warning', warning: status.spoiler_text)
|
||||||
|
end
|
||||||
|
|
||||||
|
def status_description(status)
|
||||||
|
components = [[media_summary(status), status_text_summary(status)].reject(&:blank?).join(' · ')]
|
||||||
|
components << status.text if status.spoiler_text.blank?
|
||||||
|
components.reject(&:blank?).join("\n\n")
|
||||||
|
end
|
||||||
|
|
||||||
def stream_link_target
|
def stream_link_target
|
||||||
embedded_view? ? '_blank' : nil
|
embedded_view? ? '_blank' : nil
|
||||||
end
|
end
|
||||||
|
|
|
@ -97,7 +97,7 @@ export default class Compose extends React.PureComponent {
|
||||||
<ComposeFormContainer />
|
<ComposeFormContainer />
|
||||||
{multiColumn && (
|
{multiColumn && (
|
||||||
<div className='drawer__inner__mastodon'>
|
<div className='drawer__inner__mastodon'>
|
||||||
<img alt='' src={elephantUIPlane} />
|
<img alt='' draggable='false' src={elephantUIPlane} />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1842,6 +1842,9 @@
|
||||||
object-position: bottom left;
|
object-position: bottom left;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
pointer-events: none;
|
||||||
|
user-drag: none;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
|
||||||
visibility: visibility_from_audience,
|
visibility: visibility_from_audience,
|
||||||
thread: replied_to_status,
|
thread: replied_to_status,
|
||||||
conversation: conversation_from_uri(@object['conversation']),
|
conversation: conversation_from_uri(@object['conversation']),
|
||||||
media_attachments: process_attachments.take(4),
|
media_attachment_ids: process_attachments.take(4).map(&:id),
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ class OStatus::Activity::Creation < OStatus::Activity::Base
|
||||||
visibility: visibility_scope,
|
visibility: visibility_scope,
|
||||||
conversation: find_or_create_conversation,
|
conversation: find_or_create_conversation,
|
||||||
thread: thread? ? find_status(thread.first) || find_activitypub_status(thread.first, thread.second) : nil,
|
thread: thread? ? find_status(thread.first) || find_activitypub_status(thread.first, thread.second) : nil,
|
||||||
media_attachments: media_attachments
|
media_attachment_ids: media_attachments.map(&:id)
|
||||||
)
|
)
|
||||||
|
|
||||||
save_mentions(status)
|
save_mentions(status)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
= opengraph 'og:url', url
|
= opengraph 'og:url', url
|
||||||
= opengraph 'og:site_name', site_title
|
= opengraph 'og:site_name', site_title
|
||||||
= opengraph 'og:title', [yield(:page_title).strip.presence, site_title].compact.join(' - ')
|
= opengraph 'og:title', yield(:page_title).strip
|
||||||
= opengraph 'og:description', account_description(account)
|
= opengraph 'og:description', account_description(account)
|
||||||
= opengraph 'og:image', full_asset_url(account.avatar.url(:original))
|
= opengraph 'og:image', full_asset_url(account.avatar.url(:original))
|
||||||
= opengraph 'og:image:width', '120'
|
= opengraph 'og:image:width', '120'
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
- content_for :page_title do
|
- content_for :page_title do
|
||||||
= "#{display_name(@account)} (@#{@account.username})"
|
= "#{display_name(@account)} (@#{@account.local_username_and_domain})"
|
||||||
|
|
||||||
- content_for :header_tags do
|
- content_for :header_tags do
|
||||||
%meta{ name: 'description', content: account_description(@account) }/
|
%meta{ name: 'description', content: account_description(@account) }/
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
= opengraph 'og:description', [activity.spoiler_text, activity.text].reject(&:blank?).join("\n\n")
|
= opengraph 'og:description', status_description(activity)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
- if activity.is_a?(Status) && activity.media_attachments.any?
|
- if activity.is_a?(Status) && activity.non_sensitive_with_media?
|
||||||
- player_card = false
|
- player_card = false
|
||||||
- activity.media_attachments.each do |media|
|
- activity.media_attachments.each do |media|
|
||||||
- if media.image?
|
- if media.image?
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
|
|
||||||
= opengraph 'og:site_name', site_title
|
= opengraph 'og:site_name', site_title
|
||||||
= opengraph 'og:type', 'article'
|
= opengraph 'og:type', 'article'
|
||||||
= opengraph 'og:title', "#{@account.display_name.presence || @account.username} on #{site_hostname}"
|
= opengraph 'og:title', "#{display_name(@account)} (@#{@account.local_username_and_domain})"
|
||||||
= opengraph 'og:url', account_stream_entry_url(@account, @stream_entry)
|
= opengraph 'og:url', short_account_status_url(@account, @stream_entry)
|
||||||
|
|
||||||
= render 'stream_entries/og_description', activity: @stream_entry.activity
|
= render 'stream_entries/og_description', activity: @stream_entry.activity
|
||||||
= render 'stream_entries/og_image', activity: @stream_entry.activity, account: @account
|
= render 'stream_entries/og_image', activity: @stream_entry.activity, account: @account
|
||||||
|
|
|
@ -63,3 +63,4 @@ ignore_unused:
|
||||||
- 'admin.accounts.roles.*'
|
- 'admin.accounts.roles.*'
|
||||||
- 'admin.action_logs.actions.*'
|
- 'admin.action_logs.actions.*'
|
||||||
- 'themes.default'
|
- 'themes.default'
|
||||||
|
- 'statuses.attached.*'
|
||||||
|
|
|
@ -645,6 +645,15 @@ en:
|
||||||
two_factor_authentication: Two-factor Auth
|
two_factor_authentication: Two-factor Auth
|
||||||
your_apps: Your applications
|
your_apps: Your applications
|
||||||
statuses:
|
statuses:
|
||||||
|
attached:
|
||||||
|
description: 'Attached: %{attached}'
|
||||||
|
image:
|
||||||
|
one: "%{count} image"
|
||||||
|
other: "%{count} images"
|
||||||
|
video:
|
||||||
|
one: "%{count} video"
|
||||||
|
other: "%{count} videos"
|
||||||
|
content_warning: 'Content warning: %{warning}'
|
||||||
open_in_web: Open in web
|
open_in_web: Open in web
|
||||||
over_character_limit: character limit of %{max} exceeded
|
over_character_limit: character limit of %{max} exceeded
|
||||||
pin_errors:
|
pin_errors:
|
||||||
|
|
Loading…
Reference in New Issue