diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-03-18 20:33:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-18 20:33:07 +0100 |
commit | a568e3ca8e754b690224ae79e75aeb60efa49b78 (patch) | |
tree | 33bd913d090c4f1c32a6f4bda917d38e3c538db7 /app/helpers | |
parent | 3b440bd5af92682c388140035c1bcdc6f9711b1d (diff) |
Revert #6479, hide sensitive text/images from OpenGraph previews (#6818)
Display summary of attachments in description, and mark up content warning if present, e.g.: Attached: 3 images · Content warning: Dota 2 When text is not supposed to be hidden, it looks more like: Attached: 3 images Here is the text of the toot With #6817, multilinguagility should be assured...
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/stream_entries_helper.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/app/helpers/stream_entries_helper.rb b/app/helpers/stream_entries_helper.rb index 54b92bdf4..3992432db 100644 --- a/app/helpers/stream_entries_helper.rb +++ b/app/helpers/stream_entries_helper.rb @@ -29,6 +29,35 @@ module StreamEntriesHelper [prepend_str, account.note].join(' · ') end + def media_summary(status) + attachments = { image: 0, video: 0 } + + status.media_attachments.each do |media| + if media.video? + attachments[:video] += 1 + else + attachments[:image] += 1 + end + end + + text = attachments.to_a.reject { |_, value| value.zero? }.map { |key, value| t("statuses.attached.#{key}", count: value) }.join(' · ') + + return if text.blank? + + t('statuses.attached.description', attached: text) + end + + def status_text_summary(status) + return if status.spoiler_text.blank? + t('statuses.content_warning', warning: status.spoiler_text) + end + + def status_description(status) + components = [[media_summary(status), status_text_summary(status)].reject(&:blank?).join(' · ')] + components << status.text if status.spoiler_text.blank? + components.reject(&:blank?).join("\n\n") + end + def stream_link_target embedded_view? ? '_blank' : nil end |