about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2018-02-26 11:35:34 -0600
committerDavid Yip <yipdw@member.fsf.org>2018-02-26 11:35:34 -0600
commitd8e964456cd48de2242ac55d615337d014f6f3fe (patch)
tree90db957dc7eb2ae8978a346a09595c1206c26d64 /app
parenta3c794d5d6d7a1462b8dc1c98b9eac1335e3ddc7 (diff)
parent2edf7128f211ca091ab82100833317b8d548ebce (diff)
Merge remote-tracking branch 'personal/merge/tootsuite/master' into gs-master
Diffstat (limited to 'app')
-rw-r--r--app/lib/feed_manager.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index c16b25635..700fd61c4 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -228,6 +228,14 @@ class FeedManager
         return false
       end
     else
+      # A reblog may reach earlier than the original status because of the
+      # delay of the worker deliverying the original status, the late addition
+      # by merging timelines, and other reasons.
+      # If such a reblog already exists, just do not re-insert it into the feed.
+      rank = redis.zrevrank(reblog_key, status.id)
+
+      return false unless rank.nil?
+
       redis.zadd(timeline_key, status.id, status.id)
     end