diff options
author | Starfall <us@starfall.systems> | 2022-11-12 10:09:41 -0600 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2022-11-12 10:11:39 -0600 |
commit | b07b6b9f339b604f9af150eb10ac1486eca8f189 (patch) | |
tree | 512943f7488b1fdb7d7c5d87cc039ea2f1886292 /app/controllers/api/v1 | |
parent | b96b336a7871b5e88da8f308116e8f0ca7827132 (diff) | |
parent | 81b1d32d5b618daa4003b8de8292ae4dd3e656f6 (diff) |
Merge remote-tracking branch 'glitch/main'
Diffstat (limited to 'app/controllers/api/v1')
-rw-r--r-- | app/controllers/api/v1/statuses_controller.rb | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 26ef7087a..e2e48f633 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -18,14 +18,29 @@ class Api::V1::StatusesController < Api::BaseController # than this anyway CONTEXT_LIMIT = 4_096 + # This remains expensive and we don't want to show everything to logged-out users + ANCESTORS_LIMIT = 40 + DESCENDANTS_LIMIT = 60 + DESCENDANTS_DEPTH_LIMIT = 20 + def show @status = cache_collection([@status], Status).first render json: @status, serializer: REST::StatusSerializer end def context - ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(CONTEXT_LIMIT, current_account) - descendants_results = @status.descendants(CONTEXT_LIMIT, current_account) + ancestors_limit = CONTEXT_LIMIT + descendants_limit = CONTEXT_LIMIT + descendants_depth_limit = nil + + if current_account.nil? + ancestors_limit = ANCESTORS_LIMIT + descendants_limit = DESCENDANTS_LIMIT + descendants_depth_limit = DESCENDANTS_DEPTH_LIMIT + end + + ancestors_results = @status.in_reply_to_id.nil? ? [] : @status.ancestors(ancestors_limit, current_account) + descendants_results = @status.descendants(descendants_limit, current_account, descendants_depth_limit) loaded_ancestors = cache_collection(ancestors_results, Status) loaded_descendants = cache_collection(descendants_results, Status) |