Fix URL scanning in note length validator and preview card fetching (#15827)
* Add tests * Fix URL scanning in note length validator and preview card fetching
This commit is contained in:
		@@ -2,12 +2,6 @@
 | 
			
		||||
 | 
			
		||||
class StatusLengthValidator < ActiveModel::Validator
 | 
			
		||||
  MAX_CHARS = 500
 | 
			
		||||
  URL_PATTERN = %r{
 | 
			
		||||
    (?:
 | 
			
		||||
      (#{Twitter::TwitterText::Regex[:valid_url_preceding_chars]})
 | 
			
		||||
      (#{FetchLinkCardService::URL_PATTERN})
 | 
			
		||||
    )
 | 
			
		||||
  }iox
 | 
			
		||||
  URL_PLACEHOLDER = "\1#{'x' * 23}"
 | 
			
		||||
 | 
			
		||||
  def validate(status)
 | 
			
		||||
@@ -35,7 +29,7 @@ class StatusLengthValidator < ActiveModel::Validator
 | 
			
		||||
    return '' if @status.text.nil?
 | 
			
		||||
 | 
			
		||||
    @status.text.dup.tap do |new_text|
 | 
			
		||||
      new_text.gsub!(URL_PATTERN, URL_PLACEHOLDER)
 | 
			
		||||
      new_text.gsub!(FetchLinkCardService::URL_PATTERN, URL_PLACEHOLDER)
 | 
			
		||||
      new_text.gsub!(Account::MENTION_RE, '@\2')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user