Skip to content

Commit

Permalink
When serializing polls over OStatus, serialize poll options to text (m…
Browse files Browse the repository at this point in the history
…astodon#10160)

* When serializing polls over OStatus, serialize poll options to text

* Do the same for RSS feeds

* Use “[ ] ” as a prefix for poll options instead of “- ”
  • Loading branch information
ClearlyClaire authored and hiyuki2578 committed Oct 2, 2019
1 parent 4fa0fde commit d4169fd
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 2 deletions.
4 changes: 4 additions & 0 deletions app/lib/formatter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ def format(status, **options)

raw_content = status.text

if options[:inline_poll_options] && status.poll
raw_content = raw_content + '\n\n' + status.poll.options.map { |title| "[ ] #{title}" }.join('\n')
end

return '' if raw_content.blank?

unless status.local?
Expand Down
2 changes: 1 addition & 1 deletion app/lib/ostatus/atom_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ def serialize_status_attributes(entry, status)
append_element(entry, 'link', nil, rel: :alternate, type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(status)) if status.account.local?

append_element(entry, 'summary', status.spoiler_text, 'xml:lang': status.language) if status.spoiler_text?
append_element(entry, 'content', Formatter.instance.format(status).to_str || '.', type: 'html', 'xml:lang': status.language)
append_element(entry, 'content', Formatter.instance.format(status, inline_poll_options: true).to_str || '.', type: 'html', 'xml:lang': status.language)

status.active_mentions.sort_by(&:id).each do |mentioned|
append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': OStatus::TagManager::TYPES[:person], href: OStatus::TagManager.instance.uri_for(mentioned.account))
Expand Down
2 changes: 1 addition & 1 deletion app/serializers/rss/account_serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def render(account, statuses)
item.title(status.title)
.link(TagManager.instance.url_for(status))
.pub_date(status.created_at)
.description(status.spoiler_text.presence || Formatter.instance.format(status).to_str)
.description(status.spoiler_text.presence || Formatter.instance.format(status, inline_poll_options: true).to_str)

status.media_attachments.each do |media|
item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, length: media.file.size)
Expand Down

0 comments on commit d4169fd

Please sign in to comment.