mirror of
https://github.com/mastodon/mastodon.git
synced 2024-10-21 01:55:41 +09:00
27 lines
682 B
Ruby
27 lines
682 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
class FollowRecommendationFilter
|
||
|
KEYS = %i(
|
||
|
language
|
||
|
status
|
||
|
).freeze
|
||
|
|
||
|
attr_reader :params, :language
|
||
|
|
||
|
def initialize(params)
|
||
|
@language = params.delete('language') || I18n.locale
|
||
|
@params = params
|
||
|
end
|
||
|
|
||
|
def results
|
||
|
if params['status'] == 'suppressed'
|
||
|
Account.joins(:follow_recommendation_suppression).order(FollowRecommendationSuppression.arel_table[:id].desc).to_a
|
||
|
else
|
||
|
account_ids = Redis.current.zrevrange("follow_recommendations:#{@language}", 0, -1).map(&:to_i)
|
||
|
accounts = Account.where(id: account_ids).index_by(&:id)
|
||
|
|
||
|
account_ids.map { |id| accounts[id] }.compact
|
||
|
end
|
||
|
end
|
||
|
end
|