about summary refs log tree commit diff
path: root/app/services/remove_status_service.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-11-09 19:16:27 +0100
committerEugen Rochko <eugen@zeonfederated.com>2016-11-09 19:16:27 +0100
commitc5e03a2e0d7eac132a5d62d1d7d523a6969697cc (patch)
tree64beb72b535d9375653e01af7cfd7e9da428421f /app/services/remove_status_service.rb
parent448ab18a201c902b4e7a1aa468c352c20d034989 (diff)
Status removal is broadcast to public/hashtag timelines too
Diffstat (limited to 'app/services/remove_status_service.rb')
-rw-r--r--app/services/remove_status_service.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 0b78b131a..66fa1be18 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -4,6 +4,8 @@ class RemoveStatusService < BaseService
     remove_from_followers(status)
     remove_from_mentioned(status)
     remove_reblogs(status)
+    remove_from_hashtags(status)
+    remove_from_public(status)
 
     status.destroy!
   end
@@ -49,6 +51,16 @@ class RemoveStatusService < BaseService
     FeedManager.instance.broadcast(receiver.id, type: 'delete', id: status.id)
   end
 
+  def remove_from_hashtags(status)
+    status.tags.each do |tag|
+      FeedManager.instance.broadcast("hashtag:#{tag.name}", type: 'delete', id: status.id)
+    end
+  end
+
+  def remove_from_public(status)
+    FeedManager.instance.broadcast(:public, type: 'delete', id: status.id)
+  end
+
   def redis
     $redis
   end