Fix #651 - Do not reinsert original status into all followers feeds

upon un-reblogging. Check if the reblog was in the feed in the first
place. It might have been filtered on distribution.
This commit is contained in:
Eugen Rochko 2017-02-22 15:52:47 +01:00
parent 974d712fbe
commit c77a54fe0a

View file

@ -59,7 +59,7 @@ class RemoveStatusService < BaseService
end end
def unpush(type, receiver, status) def unpush(type, receiver, status)
if status.reblog? if status.reblog? && !redis.zscore(FeedManager.instance.key(type, receiver.id), status.reblog_of_id).nil?
redis.zadd(FeedManager.instance.key(type, receiver.id), status.reblog_of_id, status.reblog_of_id) redis.zadd(FeedManager.instance.key(type, receiver.id), status.reblog_of_id, status.reblog_of_id)
else else
redis.zremrangebyscore(FeedManager.instance.key(type, receiver.id), status.id, status.id) redis.zremrangebyscore(FeedManager.instance.key(type, receiver.id), status.id, status.id)