|
|
|
@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.Builder do
|
|
|
|
|
|
|
|
|
|
alias Pleroma.Object
|
|
|
|
|
alias Pleroma.User
|
|
|
|
|
alias Pleroma.Web.ActivityPub.Relay
|
|
|
|
|
alias Pleroma.Web.ActivityPub.Utils
|
|
|
|
|
alias Pleroma.Web.ActivityPub.Visibility
|
|
|
|
|
|
|
|
|
@ -85,15 +86,20 @@ defmodule Pleroma.Web.ActivityPub.Builder do
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
@spec announce(User.t(), Object.t(), keyword()) :: {:ok, map(), keyword()}
|
|
|
|
|
def announce(actor, object, options \\ []) do
|
|
|
|
|
public? = Keyword.get(options, :public, false)
|
|
|
|
|
to = [actor.follower_address, object.data["actor"]]
|
|
|
|
|
|
|
|
|
|
to =
|
|
|
|
|
if public? do
|
|
|
|
|
[Pleroma.Constants.as_public() | to]
|
|
|
|
|
else
|
|
|
|
|
to
|
|
|
|
|
cond do
|
|
|
|
|
actor.ap_id == Relay.relay_ap_id() ->
|
|
|
|
|
[actor.follower_address]
|
|
|
|
|
|
|
|
|
|
public? ->
|
|
|
|
|
[actor.follower_address, object.data["actor"], Pleroma.Constants.as_public()]
|
|
|
|
|
|
|
|
|
|
true ->
|
|
|
|
|
[actor.follower_address, object.data["actor"]]
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
{:ok,
|
|
|
|
|