Use <summary> to encode content warnings instead

This commit is contained in:
Eugen Rochko 2017-01-25 16:53:30 +01:00
parent 0430f7c0fa
commit 3beb24ad55
4 changed files with 5 additions and 8 deletions

View file

@ -42,9 +42,8 @@ module AtomBuilderHelper
end
def content(xml, content, warning = nil)
extra = { type: 'html' }
extra[:warning] = warning unless warning.blank?
xml.content(extra, content) unless content.blank?
xml.summary(warning) unless warning.blank?
xml.content({ type: 'html' }, content) unless content.blank?
end
def title(xml, title)

View file

@ -16,7 +16,7 @@ class PostStatusService < BaseService
status = account.statuses.create!(text: text,
thread: in_reply_to,
sensitive: options[:sensitive],
spoiler_text: options[:spoiler_text],
spoiler_text: options[:spoiler_text] || '',
visibility: options[:visibility],
application: options[:application])

View file

@ -225,7 +225,7 @@ class ProcessFeedService < BaseService
end
def content_warning(xml = @xml)
xml.at_xpath('./xmlns:content', xmlns: TagManager::XMLNS)['warning']
xml.at_xpath('./xmlns:summary', xmlns: TagManager::XMLNS)&.content || ''
end
def published(xml = @xml)

View file

@ -12,6 +12,4 @@ Some functionality in Mastodon required some additions to the protocols to enabl
2. Statuses can be marked as containing sensitive (or not safe for work) media. This is symbolized by a `<category term="nsfw" />` on the Atom entry
3. Statuses can have a content warning (used e.g. for warning about spoilers in the text). It is stored in the `warning` attribute on the `<content />` tag of the Atom entry, e.g. `<content type="html" warning="This post talks about the ending to 6th sense">Lorem ipsum dolor sit amet</content>`
4. Statuses that are intended to be listed publicly on e.g. "whole known network" or "public" timelines contain a `<link rel="mentioned" href="http://activityschema.org/collection/public" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection"/>`. Conversely, statuses which do not contain that, are intended to be low key, unlisted
3. Statuses that are intended to be listed publicly on e.g. "whole known network" or "public" timelines contain a `<link rel="mentioned" href="http://activityschema.org/collection/public" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection"/>`. Conversely, statuses which do not contain that, are intended to be low key, unlisted