diff --git a/app/controllers/contacts_controller.rb b/app/controllers/contacts_controller.rb index 0ced97b09..96c33807c 100644 --- a/app/controllers/contacts_controller.rb +++ b/app/controllers/contacts_controller.rb @@ -39,13 +39,7 @@ class ContactsController < ApplicationController def featured @featured = true - @people = [] - if diaspora_ids = AppConfig[:featured_users] - @people = diaspora_ids.inject [] do |people, id| - person = Webfinger.new(id).fetch - people << person unless person.blank? - end - end + @people = Person.featured_users end private diff --git a/app/models/person.rb b/app/models/person.rb index 73334daef..2204c2e59 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -46,6 +46,12 @@ class Person < ActiveRecord::Base scope :remote, where('people.owner_id IS NULL') scope :local, where('people.owner_id IS NOT NULL') + def self.featured_users + if AppConfig[:featured_users].present? + Person.where(:diaspora_handle => AppConfig[:featured_users]) + end + end + def self.search_query_string(query) query = query.downcase diff --git a/config/initializers/fetch_featured_users.rb b/config/initializers/fetch_featured_users.rb new file mode 100644 index 000000000..eba98d1cc --- /dev/null +++ b/config/initializers/fetch_featured_users.rb @@ -0,0 +1,7 @@ +unless AppConfig[:featured_users].count == Person.featured_users.count + puts "Fetching featured users from remote servers..." + AppConfig[:featured_users].each do |x| + Webfinger.new(x).fetch + end + puts "Done fetching!" +end diff --git a/spec/models/person_spec.rb b/spec/models/person_spec.rb index faa3b238c..18818097a 100644 --- a/spec/models/person_spec.rb +++ b/spec/models/person_spec.rb @@ -390,4 +390,7 @@ describe Person do should == @person.as_json.merge(:tags => @person.profile.tags.map{|t| "##{t.name}"}) end end + + describe '.featured_users' do + end end