Update twitter-text from 1.14 to 3.1.0 and fix toot character counting (#15382)
* Update twitter-text from 1.14 to 3.1.0 * Disable emoji parsing * Properly depend on twitter-text for url detection * Fix some URLs being wrongly detected client-side * Add test for server-side validation of non-autolinkable URLs * Fix server-side status length counting
This commit is contained in:
		@@ -2,6 +2,13 @@
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
    return unless status.local? && !status.reblog?
 | 
			
		||||
@@ -28,7 +35,7 @@ class StatusLengthValidator < ActiveModel::Validator
 | 
			
		||||
    return '' if @status.text.nil?
 | 
			
		||||
 | 
			
		||||
    @status.text.dup.tap do |new_text|
 | 
			
		||||
      new_text.gsub!(FetchLinkCardService::URL_PATTERN, 'x' * 23)
 | 
			
		||||
      new_text.gsub!(URL_PATTERN, URL_PLACEHOLDER)
 | 
			
		||||
      new_text.gsub!(Account::MENTION_RE, '@\2')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user