diff options
author | ThibG <thib@sitedethib.com> | 2020-05-10 09:50:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-10 09:50:54 +0200 |
commit | a4240fd0272eb79b7d99cccfa7d14e8a1e12921d (patch) | |
tree | c6da3d4c75018c01c09fa0b582e6ca0b35aea790 /app/serializers | |
parent | 73f3842284ac8ed6519e4d680ab17bde47dfbcae (diff) |
Improve RSS entries for statuses (#13592)
* Improve RSS entries for statuses - Render polls in both accounts and tags serializers - Refactor RSS serializers - Change title preview to include ellipsis when truncated - Change title preview to show CW instead of toot text - Add tests * Remove title from OEmbed serialization Twitter doesn't serialize title either, and tihs allows us to move the title formatting code to the RSS serializers.
Diffstat (limited to 'app/serializers')
-rw-r--r-- | app/serializers/oembed_serializer.rb | 2 | ||||
-rw-r--r-- | app/serializers/rss/account_serializer.rb | 15 | ||||
-rw-r--r-- | app/serializers/rss/tag_serializer.rb | 15 |
3 files changed, 5 insertions, 27 deletions
diff --git a/app/serializers/oembed_serializer.rb b/app/serializers/oembed_serializer.rb index 01689633b..d6261d724 100644 --- a/app/serializers/oembed_serializer.rb +++ b/app/serializers/oembed_serializer.rb @@ -4,7 +4,7 @@ class OEmbedSerializer < ActiveModel::Serializer include RoutingHelper include ActionView::Helpers::TagHelper - attributes :type, :version, :title, :author_name, + attributes :type, :version, :author_name, :author_url, :provider_name, :provider_url, :cache_age, :html, :width, :height diff --git a/app/serializers/rss/account_serializer.rb b/app/serializers/rss/account_serializer.rb index ee972ff96..81e24af0d 100644 --- a/app/serializers/rss/account_serializer.rb +++ b/app/serializers/rss/account_serializer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RSS::AccountSerializer +class RSS::AccountSerializer < RSS::Serializer include ActionView::Helpers::NumberHelper include AccountsHelper include RoutingHelper @@ -17,18 +17,7 @@ class RSS::AccountSerializer builder.image(full_asset_url(account.avatar.url(:original))) if account.avatar? builder.cover(full_asset_url(account.header.url(:original))) if account.header? - statuses.each do |status| - builder.item do |item| - item.title(status.title) - .link(ActivityPub::TagManager.instance.url_for(status)) - .pub_date(status.created_at) - .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, media.file.size) - end - end - end + render_statuses(builder, statuses) builder.to_xml end diff --git a/app/serializers/rss/tag_serializer.rb b/app/serializers/rss/tag_serializer.rb index ea26189a2..e549ac367 100644 --- a/app/serializers/rss/tag_serializer.rb +++ b/app/serializers/rss/tag_serializer.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RSS::TagSerializer +class RSS::TagSerializer < RSS::Serializer include ActionView::Helpers::NumberHelper include ActionView::Helpers::SanitizeHelper include RoutingHelper @@ -14,18 +14,7 @@ class RSS::TagSerializer .logo(full_pack_url('media/images/logo.svg')) .accent_color('2b90d9') - statuses.each do |status| - builder.item do |item| - item.title(status.title) - .link(ActivityPub::TagManager.instance.url_for(status)) - .pub_date(status.created_at) - .description(status.spoiler_text.presence || Formatter.instance.format(status).to_str) - - status.media_attachments.each do |media| - item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size) - end - end - end + render_statuses(builder, statuses) builder.to_xml end |