Browse Source

Do not use permitted_for scope when querying pinned statuses (#7510)

permitted_for scope is slow when combined with pinned status scope.
Fortunately permitted_for scope can safely be removed because a pinned
status is always public.
pull/4/head
Akihiko Odaki 6 years ago
committed by Eugen Rochko
parent
commit
77cd6b5096
1 changed files with 7 additions and 9 deletions
  1. +7
    -9
      app/controllers/api/v1/accounts/statuses_controller.rb

+ 7
- 9
app/controllers/api/v1/accounts/statuses_controller.rb View File

@ -27,19 +27,17 @@ class Api::V1::Accounts::StatusesController < Api::BaseController
end
def account_statuses
default_statuses.tap do |statuses|
statuses.merge!(only_media_scope) if truthy_param?(:only_media)
statuses.merge!(pinned_scope) if truthy_param?(:pinned)
statuses.merge!(no_replies_scope) if truthy_param?(:exclude_replies)
end
end
def default_statuses
permitted_account_statuses.paginate_by_max_id(
statuses = truthy_param?(:pinned) ? pinned_scope : permitted_account_statuses
statuses = statuses.paginate_by_max_id(
limit_param(DEFAULT_STATUSES_LIMIT),
params[:max_id],
params[:since_id]
)
statuses.merge!(only_media_scope) if truthy_param?(:only_media)
statuses.merge!(no_replies_scope) if truthy_param?(:exclude_replies)
statuses
end
def permitted_account_statuses

Loading…
Cancel
Save