about summary refs log tree commit diff
path: root/app/helpers/stream_entries_helper.rb
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2018-03-18 20:21:17 -0500
committerDavid Yip <yipdw@member.fsf.org>2018-03-18 20:21:17 -0500
commitab04be2f84132e6b6a83ca86cbabf2cdf13f5894 (patch)
tree589ed30bd629a305a28eeb5a458fa0f83945eca3 /app/helpers/stream_entries_helper.rb
parent6a6f680d98d114e3bb26e414ad7e3787a62bd129 (diff)
parentf02411da404f730e3c05dc7dca1ac0f2d631315e (diff)
Merge remote-tracking branch 'origin/master' into gs-master
  Conflicts:
 	config/i18n-tasks.yml
Diffstat (limited to 'app/helpers/stream_entries_helper.rb')
-rw-r--r--app/helpers/stream_entries_helper.rb29
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