|
|
|
@ -22,8 +22,18 @@ class FeedManager |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def push(timeline_type, account, status) |
|
|
|
|
redis.zadd(key(timeline_type, account.id), status.id, status.reblog? ? status.reblog_of_id : status.id) |
|
|
|
|
trim(timeline_type, account.id) |
|
|
|
|
timeline_key = key(timeline_type, account.id) |
|
|
|
|
|
|
|
|
|
if status.reblog? |
|
|
|
|
# If the original status is within 40 statuses from top, do not re-insert it into the feed |
|
|
|
|
rank = redis.zrevrank(timeline_key, status.reblog_of_id) |
|
|
|
|
return if !rank.nil? && rank < 40 |
|
|
|
|
redis.zadd(timeline_key, status.id, status.reblog_of_id) |
|
|
|
|
else |
|
|
|
|
redis.zadd(timeline_key, status.id, status.id) |
|
|
|
|
trim(timeline_type, account.id) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
broadcast(account.id, event: 'update', payload: inline_render(account, 'api/v1/statuses/show', status)) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|