Don't forget to lycansubscribe
35
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 38 lines 869 B view raw
1require 'active_record' 2 3require_relative 'user' 4 5class Import < ActiveRecord::Base 6 belongs_to :user 7 8 validates_inclusion_of :collection, in: %w(likes reposts posts) 9 validates_uniqueness_of :collection, scope: :user_id 10 11 scope :unfinished, -> { where('(started_from IS NOT NULL) OR (last_completed IS NULL)') } 12 13 IMPORT_END = Time.at(0) 14 15 def imported_until 16 return nil if cursor.nil? && last_completed.nil? 17 18 groups = case collection 19 when 'likes' 20 [:likes] 21 when 'reposts' 22 [:reposts] 23 when 'posts' 24 [:pins, :quotes] 25 end 26 27 newest_queued_items = groups.map { |g| user.send(g).where(queue: :import).order(:time).last } 28 newest_queued = newest_queued_items.compact.sort_by(&:time).last 29 30 if newest_queued 31 newest_queued.time 32 elsif fetched_until 33 fetched_until 34 else 35 IMPORT_END 36 end 37 end 38end