diff options
author | David Yip <yipdw@member.fsf.org> | 2017-11-17 17:40:00 -0600 |
---|---|---|
committer | David Yip <yipdw@member.fsf.org> | 2017-11-17 17:40:00 -0600 |
commit | 1ab12ba38ebd42be93b63b7cf0d3c6a81060b741 (patch) | |
tree | 3899389c63c16e33dd48fadb270d3259a7c15b67 /app/workers/feed_insert_worker.rb | |
parent | 6f8ccbfcdf7fd8ca651d1583a608e96b25a09e25 (diff) | |
parent | 24cafd73a2b644025e9aeaadf4fed46dd3ecea4d (diff) |
Merge remote-tracking branch 'origin/master' into merge-upstream
Diffstat (limited to 'app/workers/feed_insert_worker.rb')
-rw-r--r-- | app/workers/feed_insert_worker.rb | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/app/workers/feed_insert_worker.rb b/app/workers/feed_insert_worker.rb index 65c02d3ef..1ae3c877b 100644 --- a/app/workers/feed_insert_worker.rb +++ b/app/workers/feed_insert_worker.rb @@ -3,34 +3,41 @@ class FeedInsertWorker include Sidekiq::Worker - attr_reader :status, :follower - - def perform(status_id, follower_id) - @status = Status.find_by(id: status_id) - @follower = Account.find_by(id: follower_id) + def perform(status_id, id, type = :home) + @type = type.to_sym + @status = Status.find(status_id) + + case @type + when :home + @follower = Account.find(id) + when :list + @list = List.find(id) + @follower = @list.account + end check_and_insert + rescue ActiveRecord::RecordNotFound + true end private def check_and_insert - if records_available? - perform_push unless feed_filtered? - else - true - end - end - - def records_available? - status.present? && follower.present? + perform_push unless feed_filtered? end def feed_filtered? - FeedManager.instance.filter?(:home, status, follower.id) + # Note: Lists are a variation of home, so the filtering rules + # of home apply to both + FeedManager.instance.filter?(:home, @status, @follower.id) end def perform_push - FeedManager.instance.push(:home, follower, status) + case @type + when :home + FeedManager.instance.push_to_home(@follower, @status) + when :list + FeedManager.instance.push_to_list(@list, @status) + end end end |