Use <summary> to encode content warnings instead

master
Eugen Rochko 7 years ago
parent 0430f7c0fa
commit 3beb24ad55
  1. 5
      app/helpers/atom_builder_helper.rb
  2. 2
      app/services/post_status_service.rb
  3. 2
      app/services/process_feed_service.rb
  4. 4
      docs/Extensions.md

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

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

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

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

Loading…
Cancel
Save