diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 24 | 
1 files changed, 11 insertions, 13 deletions
| diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index e89588f29..343228b37 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -914,22 +914,23 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do    Based on Mastodon's ActivityPub::NoteSerializer#replies.    """    def set_replies(obj_data) do -    limit = Pleroma.Config.get([:activitypub, :note_replies_output_limit], 0) -      replies_uris = -      with true <- limit > 0 || nil, +      with limit when limit > 0 <- +             Pleroma.Config.get([:activitypub, :note_replies_output_limit], 0),             %Object{} = object <- Object.get_cached_by_ap_id(obj_data["id"]) do          object          |> Object.self_replies()          |> select([o], fragment("?->>'id'", o.data))          |> limit(^limit)          |> Repo.all() +      else +        _ -> []        end -    set_replies(obj_data, replies_uris || []) +    set_replies(obj_data, replies_uris)    end -  defp set_replies(obj, replies_uris) when replies_uris in [nil, []] do +  defp set_replies(obj, []) do      obj    end @@ -952,15 +953,12 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do      Map.merge(obj, %{"replies" => replies_collection})    end -  def replies(%{"replies" => replies} = _object) when is_map(replies) do -    replies = -      if is_map(replies["first"]) do -        replies["first"] -      else -        replies -      end +  def replies(%{"replies" => %{"first" => %{"items" => items}}}) when not is_nil(items) do +    items +  end -    replies["items"] || [] +  def replies(%{"replies" => %{"items" => items}}) when not is_nil(items) do +    items    end    def replies(_), do: [] | 
