Improve Pleroma.Web.ActivityPub.ActivityPub.maybe_update_cc/3

This commit is contained in:
Egor Kislitsyn 2019-05-18 01:17:14 +07:00
parent 557f0e33a7
commit 3b71612d3d

View file

@ -881,14 +881,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|> maybe_update_cc(list_memberships, opts["user"]) |> maybe_update_cc(list_memberships, opts["user"])
end end
defp maybe_update_cc(activities, [], _), do: activities defp maybe_update_cc(activities, list_memberships, %User{ap_id: user_ap_id})
defp maybe_update_cc(activities, _, nil), do: activities when is_list(list_memberships) and length(list_memberships) > 0 do
defp maybe_update_cc(activities, list_memberships, user) do
Enum.map(activities, fn Enum.map(activities, fn
%{data: %{"bcc" => bcc}} = activity when is_list(bcc) -> %{data: %{"bcc" => bcc}} = activity when is_list(bcc) and length(bcc) > 0 ->
if Enum.any?(bcc, &(&1 in list_memberships)) do if Enum.any?(bcc, &(&1 in list_memberships)) do
update_in(activity.data["cc"], &[user.ap_id | &1]) update_in(activity.data["cc"], &[user_ap_id | &1])
else else
activity activity
end end
@ -898,6 +896,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
end) end)
end end
defp maybe_update_cc(activities, _, _), do: activities
def fetch_activities_bounded(recipients_to, recipients_cc, opts \\ %{}) do def fetch_activities_bounded(recipients_to, recipients_cc, opts \\ %{}) do
fetch_activities_query([], opts) fetch_activities_query([], opts)
|> restrict_to_cc(recipients_to, recipients_cc) |> restrict_to_cc(recipients_to, recipients_cc)