diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-03-02 12:02:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-02 12:02:56 +0100 |
commit | 65db2625508c220fd3c0a1f37cdd2e13b6e02987 (patch) | |
tree | 47b7ffdb601a3eed8870699f74212706450d04e9 /app/validators | |
parent | a8139ab0160096d09d83e8d3f9c7849129be1aa8 (diff) |
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
Diffstat (limited to 'app/validators')
-rw-r--r-- | app/validators/status_length_validator.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/app/validators/status_length_validator.rb b/app/validators/status_length_validator.rb index 93bae2fa8..b56c5a321 100644 --- a/app/validators/status_length_validator.rb +++ b/app/validators/status_length_validator.rb @@ -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 |