about summary refs log tree commit diff
path: root/app/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/application_helper.rb6
-rw-r--r--app/helpers/formatting_helper.rb26
-rw-r--r--app/helpers/languages_helper.rb4
-rw-r--r--app/helpers/settings/keyword_mutes_helper.rb2
-rw-r--r--app/helpers/statuses_helper.rb2
5 files changed, 34 insertions, 6 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index ce25e26f9..b26e68c4d 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -132,7 +132,7 @@ module ApplicationHelper
     elsif status.private_visibility? || status.limited_visibility?
       fa_icon('lock', title: I18n.t('statuses.visibilities.private'))
     elsif status.direct_visibility?
-      fa_icon('envelope', title: I18n.t('statuses.visibilities.direct'))
+      fa_icon('at', title: I18n.t('statuses.visibilities.direct'))
     end
   end
 
@@ -244,7 +244,7 @@ module ApplicationHelper
     end.values
   end
 
-  def prerender_custom_emojis(html, custom_emojis)
-    EmojiFormatter.new(html, custom_emojis, animate: prefers_autoplay?).to_s
+  def prerender_custom_emojis(html, custom_emojis, other_options = {})
+    EmojiFormatter.new(html, custom_emojis, other_options.merge(animate: prefers_autoplay?)).to_s
   end
 end
diff --git a/app/helpers/formatting_helper.rb b/app/helpers/formatting_helper.rb
index 53e100dd2..448177bec 100644
--- a/app/helpers/formatting_helper.rb
+++ b/app/helpers/formatting_helper.rb
@@ -18,6 +18,32 @@ module FormattingHelper
     html_aware_format(status.text, status.local?, preloaded_accounts: [status.account] + (status.respond_to?(:active_mentions) ? status.active_mentions.map(&:account) : []), content_type: status.content_type)
   end
 
+  def rss_status_content_format(status)
+    html = status_content_format(status)
+
+    before_html = begin
+      if status.spoiler_text?
+        "<p><strong>#{I18n.t('rss.content_warning', locale: available_locale_or_nil(status.language) || I18n.default_locale)}</strong> #{h(status.spoiler_text)}</p><hr />"
+      else
+        ''
+      end
+    end.html_safe # rubocop:disable Rails/OutputSafety
+
+    after_html = begin
+      if status.preloadable_poll
+        "<p>#{status.preloadable_poll.options.map { |o| "<input type=#{status.preloadable_poll.multiple? ? 'checkbox' : 'radio'} disabled /> #{h(o)}" }.join('<br />')}</p>"
+      else
+        ''
+      end
+    end.html_safe # rubocop:disable Rails/OutputSafety
+
+    prerender_custom_emojis(
+      safe_join([before_html, html, after_html]),
+      status.emojis,
+      style: 'width: 1.1em; height: 1.1em; object-fit: contain; vertical-align: middle; margin: -.2ex .15em .2ex'
+    ).to_str
+  end
+
   def account_bio_format(account)
     html_aware_format(account.note, account.local?)
   end
diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb
index cbda21b2a..7ab2c9b66 100644
--- a/app/helpers/languages_helper.rb
+++ b/app/helpers/languages_helper.rb
@@ -258,4 +258,8 @@ module LanguagesHelper
   def valid_locale?(locale)
     locale.present? && SUPPORTED_LOCALES.key?(locale.to_sym)
   end
+
+  def available_locale_or_nil(locale_name)
+    locale_name.to_sym if locale_name.present? && I18n.available_locales.include?(locale_name.to_sym)
+  end
 end
diff --git a/app/helpers/settings/keyword_mutes_helper.rb b/app/helpers/settings/keyword_mutes_helper.rb
deleted file mode 100644
index 7b98cd59e..000000000
--- a/app/helpers/settings/keyword_mutes_helper.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-module Settings::KeywordMutesHelper
-end
diff --git a/app/helpers/statuses_helper.rb b/app/helpers/statuses_helper.rb
index e92b4c839..488eabeec 100644
--- a/app/helpers/statuses_helper.rb
+++ b/app/helpers/statuses_helper.rb
@@ -101,7 +101,7 @@ module StatusesHelper
     when 'private'
       fa_icon 'lock fw'
     when 'direct'
-      fa_icon 'envelope fw'
+      fa_icon 'at fw'
     end
   end