|
@@ -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, nil, nil, descendants_depth_limit)
|
|
|
loaded_ancestors = cache_collection(ancestors_results, Status)
|
|
|
loaded_descendants = cache_collection(descendants_results, Status)
|
|
|
|