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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user