Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
This commit is contained in:
		
						commit
						6d00ca1c71
					
				@ -11,10 +11,11 @@ DB_PASS=
 | 
			
		||||
DB_PORT=5432
 | 
			
		||||
 | 
			
		||||
# Federation
 | 
			
		||||
# Note: Changing LOCAL_DOMAIN or LOCAL_HTTPS at a later time will cause unwanted side effects.
 | 
			
		||||
# Note: Changing LOCAL_DOMAIN at a later time will cause unwanted side effects, including breaking all existing federation.
 | 
			
		||||
# LOCAL_DOMAIN should *NOT* contain the protocol part of the domain e.g https://example.com.
 | 
			
		||||
LOCAL_DOMAIN=example.com 
 | 
			
		||||
LOCAL_HTTPS=true
 | 
			
		||||
 | 
			
		||||
# Changing LOCAL_HTTPS in production is no longer supported. (Mastodon will always serve https:// links)
 | 
			
		||||
 | 
			
		||||
# Use this only if you need to run mastodon on a different domain than the one used for federation.
 | 
			
		||||
# You can read more about this option on https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Serving_a_different_domain.md
 | 
			
		||||
 | 
			
		||||
@ -11,18 +11,20 @@ class ProcessMentionsService < BaseService
 | 
			
		||||
    return unless status.local?
 | 
			
		||||
 | 
			
		||||
    status.text = status.text.gsub(Account::MENTION_RE) do |match|
 | 
			
		||||
      begin
 | 
			
		||||
        mentioned_account = resolve_remote_account_service.call($1)
 | 
			
		||||
      rescue Goldfinger::Error, HTTP::Error
 | 
			
		||||
        mentioned_account = nil
 | 
			
		||||
      username, domain  = $1.split('@')
 | 
			
		||||
      mentioned_account = Account.find_remote(username, domain)
 | 
			
		||||
 | 
			
		||||
      if mention_undeliverable?(status, mentioned_account)
 | 
			
		||||
        begin
 | 
			
		||||
          mentioned_account = resolve_remote_account_service.call($1)
 | 
			
		||||
        rescue Goldfinger::Error, HTTP::Error
 | 
			
		||||
          mentioned_account = nil
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      if mentioned_account.nil?
 | 
			
		||||
        username, domain  = $1.split('@')
 | 
			
		||||
        mentioned_account = Account.find_remote(username, domain)
 | 
			
		||||
      end
 | 
			
		||||
      mentioned_account ||= Account.find_remote(username, domain)
 | 
			
		||||
 | 
			
		||||
      next match if mentioned_account.nil? || (!mentioned_account.local? && mentioned_account.ostatus? && status.stream_entry.hidden?)
 | 
			
		||||
      next match if mention_undeliverable?(status, mentioned_account)
 | 
			
		||||
 | 
			
		||||
      mentioned_account.mentions.where(status: status).first_or_create(status: status)
 | 
			
		||||
      "@#{mentioned_account.acct}"
 | 
			
		||||
@ -37,6 +39,10 @@ class ProcessMentionsService < BaseService
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def mention_undeliverable?(status, mentioned_account)
 | 
			
		||||
    mentioned_account.nil? || (!mentioned_account.local? && mentioned_account.ostatus? && status.stream_entry.hidden?)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create_notification(status, mention)
 | 
			
		||||
    mentioned_account = mention.account
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,10 @@
 | 
			
		||||
      = link_to account.domain, admin_accounts_path(by_domain: account.domain)
 | 
			
		||||
  %td
 | 
			
		||||
    - if account.local?
 | 
			
		||||
      = t("admin.accounts.roles.#{account.user&.role}")
 | 
			
		||||
      - if account.user.nil?
 | 
			
		||||
        = t("admin.accounts.moderation.suspended")
 | 
			
		||||
      - else
 | 
			
		||||
        = t("admin.accounts.roles.#{account.user.role}")
 | 
			
		||||
    - else
 | 
			
		||||
      = account.protocol.humanize
 | 
			
		||||
  %td
 | 
			
		||||
 | 
			
		||||
@ -3,11 +3,12 @@
 | 
			
		||||
port     = ENV.fetch('PORT') { 3000 }
 | 
			
		||||
host     = ENV.fetch('LOCAL_DOMAIN') { "localhost:#{port}" }
 | 
			
		||||
web_host = ENV.fetch('WEB_DOMAIN') { host }
 | 
			
		||||
https    = ENV['LOCAL_HTTPS'] == 'true'
 | 
			
		||||
 | 
			
		||||
alternate_domains = ENV.fetch('ALTERNATE_DOMAINS') { '' }
 | 
			
		||||
 | 
			
		||||
Rails.application.configure do
 | 
			
		||||
  https    = Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true'
 | 
			
		||||
 | 
			
		||||
  config.x.local_domain = host
 | 
			
		||||
  config.x.web_domain   = web_host
 | 
			
		||||
  config.x.use_https    = https
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user