[#161] Refactoring, documentation.
This commit is contained in:
parent
5b7b1040b3
commit
2b9d914089
8 changed files with 17 additions and 10 deletions
|
|
@ -187,7 +187,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
|||
|
||||
object = Map.put(object, "inReplyToAtomUri", in_reply_to_id)
|
||||
|
||||
if (options[:depth] || 1) <= Federator.max_replies_depth() do
|
||||
if Federator.allowed_incoming_reply_depth?(options[:depth]) do
|
||||
case get_obj_helper(in_reply_to_id, options) do
|
||||
{:ok, replied_object} ->
|
||||
with %Activity{} = _activity <-
|
||||
|
|
@ -349,10 +349,8 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
|||
|
||||
def fix_type(%{"inReplyTo" => reply_id} = object, options) when is_binary(reply_id) do
|
||||
reply =
|
||||
if (options[:depth] || 1) <= Federator.max_replies_depth() do
|
||||
if Federator.allowed_incoming_reply_depth?(options[:depth]) do
|
||||
Object.normalize(reply_id, true)
|
||||
else
|
||||
nil
|
||||
end
|
||||
|
||||
if reply && (reply.data["type"] == "Question" and object["name"]) do
|
||||
|
|
|
|||
|
|
@ -22,11 +22,17 @@ defmodule Pleroma.Web.Federator do
|
|||
refresh_subscriptions()
|
||||
end
|
||||
|
||||
@max_replies_depth 100
|
||||
|
||||
@doc "Addresses [memory leaks on recursive replies fetching](https://git.pleroma.social/pleroma/pleroma/issues/161)"
|
||||
# credo:disable-for-previous-line Credo.Check.Readability.MaxLineLength
|
||||
def max_replies_depth, do: @max_replies_depth
|
||||
def allowed_incoming_reply_depth?(depth) do
|
||||
max_replies_depth = Pleroma.Config.get([:instance, :federation_incoming_replies_max_depth])
|
||||
|
||||
if max_replies_depth do
|
||||
(depth || 1) <= max_replies_depth
|
||||
else
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
# Client API
|
||||
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ defmodule Pleroma.Web.OStatus.NoteHandler do
|
|||
activity
|
||||
else
|
||||
_e ->
|
||||
with true <- (options[:depth] || 1) <= Federator.max_replies_depth(),
|
||||
with true <- Federator.allowed_incoming_reply_depth?(options[:depth]),
|
||||
in_reply_to_href when not is_nil(in_reply_to_href) <-
|
||||
XML.string_from_xpath("//thr:in-reply-to[1]/@href", entry),
|
||||
{:ok, [activity | _]} <- OStatus.fetch_activity_from_url(in_reply_to_href, options) do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue