about summary refs log tree commit diff
path: root/app/channels/application_cable/channel.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/channels/application_cable/channel.rb')
-rw-r--r--app/channels/application_cable/channel.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/channels/application_cable/channel.rb b/app/channels/application_cable/channel.rb
index d67269728..d27b058fb 100644
--- a/app/channels/application_cable/channel.rb
+++ b/app/channels/application_cable/channel.rb
@@ -1,4 +1,17 @@
 module ApplicationCable
   class Channel < ActionCable::Channel::Base
+    protected
+
+    def hydrate_status(encoded_message)
+      message = ActiveSupport::JSON.decode(encoded_message)
+      status  = Status.find_by(id: message['id'])
+      message['message'] = FeedManager.instance.inline_render(current_user.account, status)
+
+      [status, message]
+    end
+
+    def filter?(status)
+      status.nil? || current_user.account.blocking?(status.account) || (status.reblog? && current_user.account.blocking?(status.reblog.account))
+    end
   end
 end