diff options
Diffstat (limited to 'app/lib')
-rw-r--r-- | app/lib/formatter.rb | 17 | ||||
-rw-r--r-- | app/lib/status_length_validator.rb | 10 |
2 files changed, 11 insertions, 16 deletions
diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index 72cd3d234..ff2a16f1b 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -14,15 +14,7 @@ class Formatter html = status.text html = encode(html) - - if (status.spoiler?) - spoilerhtml = status.spoiler_text - spoilerhtml = encode(spoilerhtml) - html = wrap_spoilers(html, spoilerhtml) - else - html = simple_format(html, sanitize: false) - end - + html = simple_format(html, {}, sanitize: false) html = html.gsub(/\n/, '') html = link_urls(html) html = link_mentions(html, status.mentions) @@ -51,13 +43,6 @@ class Formatter HTMLEntities.new.encode(html) end - def wrap_spoilers(html, spoilerhtml) - spoilerhtml = simple_format(spoilerhtml, {class: "spoiler-helper"}, {sanitize: false}) - html = simple_format(html, {class: ["spoiler", "spoiler-on"]}, {sanitize: false}) - - spoilerhtml + html - end - def link_urls(html) html.gsub(URI.regexp(%w(http https))) do |match| link_html(match) diff --git a/app/lib/status_length_validator.rb b/app/lib/status_length_validator.rb new file mode 100644 index 000000000..55135a598 --- /dev/null +++ b/app/lib/status_length_validator.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +class StatusLengthValidator < ActiveModel::Validator + MAX_CHARS = 500 + + def validate(status) + return unless status.local? && !status.reblog? + status.errors.add(:text, I18n.t('statuses.over_character_limit', max: MAX_CHARS)) if [status.text, status.spoiler_text].join.length > MAX_CHARS + end +end |