Sfoglia il codice sorgente

Exclude post actor from to of relay announce

1570-levenshtein-distance-user-search
kPherox 4 anni fa
parent
commit
48fd9be65a
Non sono state trovate chiavi note per questa firma nel database ID Chiave GPG: C04751C2BFA2F62D
2 ha cambiato i file con 12 aggiunte e 5 eliminazioni
  1. +11
    -5
      lib/pleroma/web/activity_pub/builder.ex
  2. +1
    -0
      test/web/activity_pub/relay_test.exs

+ 11
- 5
lib/pleroma/web/activity_pub/builder.ex Vedi File

@@ -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,


+ 1
- 0
test/web/activity_pub/relay_test.exs Vedi File

@@ -108,6 +108,7 @@ defmodule Pleroma.Web.ActivityPub.RelayTest do
assert {:ok, %Activity{} = activity} = Relay.publish(note)
assert activity.data["type"] == "Announce"
assert activity.data["actor"] == service_actor.ap_id
assert activity.data["to"] == [service_actor.follower_address]
assert called(Pleroma.Web.Federator.publish(activity))
end



Loading…
Annulla
Salva