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:
parent
a8139ab016
commit
65db262550
13 changed files with 99 additions and 214 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue