Normalize language code of incoming posts (#30403)
This commit is contained in:
		@@ -3,6 +3,8 @@
 | 
			
		||||
class ActivityPub::Parser::StatusParser
 | 
			
		||||
  include JsonLdHelper
 | 
			
		||||
 | 
			
		||||
  NORMALIZED_LOCALE_NAMES = LanguagesHelper::SUPPORTED_LOCALES.keys.index_by(&:downcase).freeze
 | 
			
		||||
 | 
			
		||||
  # @param [Hash] json
 | 
			
		||||
  # @param [Hash] options
 | 
			
		||||
  # @option options [String] :followers_collection
 | 
			
		||||
@@ -87,6 +89,13 @@ class ActivityPub::Parser::StatusParser
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def language
 | 
			
		||||
    lang = raw_language_code
 | 
			
		||||
    lang.presence && NORMALIZED_LOCALE_NAMES.fetch(lang.downcase.to_sym, lang)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def raw_language_code
 | 
			
		||||
    if content_language_map?
 | 
			
		||||
      @object['contentMap'].keys.first
 | 
			
		||||
    elsif name_language_map?
 | 
			
		||||
@@ -96,8 +105,6 @@ class ActivityPub::Parser::StatusParser
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def audience_to
 | 
			
		||||
    as_array(@object['to'] || @json['to']).map { |x| value_or_id(x) }
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user