diff options
author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2020-02-09 14:09:01 +0300 |
---|---|---|
committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2020-02-09 14:09:01 +0300 |
commit | 6ea3c06d8d42cd92b23c6de2d041db1cfea63b5a (patch) | |
tree | ec283ea516d26eff9769d14e6a3183feea3eb321 | |
parent | 7c3991f59eccc47551257dfe41817e71d0eb6717 (diff) | |
download | pleroma-6ea3c06d8d42cd92b23c6de2d041db1cfea63b5a.tar.gz |
[#1505] Minor refactoring.
-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: [] |