discourse/app/jobs/scheduled/clean_up_uploads.rb
2013-10-15 11:15:48 +02:00

25 lines
618 B
Ruby

module Jobs
class CleanUpUploads < Jobs::Scheduled
recurrence { hourly }
def execute(args)
uploads_used_in_posts = PostUpload.uniq.pluck(:upload_id)
uploads_used_as_avatars = User.uniq.where('uploaded_avatar_id IS NOT NULL').pluck(:uploaded_avatar_id)
grace_period = [SiteSetting.uploads_grace_period_in_hours, 1].max
Upload.where("created_at < ?", grace_period.hour.ago)
.where("id NOT IN (?)", uploads_used_in_posts + uploads_used_as_avatars)
.find_each do |upload|
# disable this for now.
#upload.destroy
end
end
end
end