diff --git a/app/helpers/atom_builder_helper.rb b/app/helpers/atom_builder_helper.rb index f17b4cc72f68f4108e3a721bf4195a3d519e2c2b..c08d80ea0ed3dc224b574dac1ac4cb51cf7e7dc4 100644 --- a/app/helpers/atom_builder_helper.rb +++ b/app/helpers/atom_builder_helper.rb @@ -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) diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index 91b654603a342d17f281d55b5665f35779aca514..979941c84c02a126a723a568c97402fa2cc5eb2f 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -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]) diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb index 4576b43214db8f73bcd9e3be717d78d2ea1c1dbe..6265341767a5a936b3e797fb04b4620799be0655 100644 --- a/app/services/process_feed_service.rb +++ b/app/services/process_feed_service.rb @@ -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) diff --git a/docs/Extensions.md b/docs/Extensions.md index a082a777d2a7db7c204bff55506ade2e1c1879bc..a3d64ebf1c498bb8f9561939150b1e2b42c7cf5a 100644 --- a/docs/Extensions.md +++ b/docs/Extensions.md @@ -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