Instead of using spoiler boolean and spoiler_text, simply check for non-blank spoiler_text
Federate spoiler_text using warning attribute on <content /> instead of a <category term="spoiler" /> Clean up schema file from accidental development migrations
This commit is contained in:
parent
f8da0dd490
commit
999cde94a6
23 changed files with 159 additions and 173 deletions
|
@ -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)
|
||||
|
|
10
app/lib/status_length_validator.rb
Normal file
10
app/lib/status_length_validator.rb
Normal file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue