0
0
Fork 0

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:
Eugen Rochko 2017-01-25 00:49:08 +01:00
parent f8da0dd490
commit 999cde94a6
23 changed files with 159 additions and 173 deletions

View file

@ -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)

View 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