diff options
author | feld <feld@feld.me> | 2024-01-11 20:21:57 +0000 |
---|---|---|
committer | feld <feld@feld.me> | 2024-01-11 20:21:57 +0000 |
commit | d4b889783c9ab8e73ba02b9c3bf1e36350de7b3c (patch) | |
tree | e8e11f73f5c937414b8b1bd9807496d1d9217bc1 /lib | |
parent | 8bc59e9743534f1be5a751ea857c74a5637f63ed (diff) | |
parent | 379d7fafd53686886643b4886d71b41f4d594fbe (diff) | |
download | pleroma-d4b889783c9ab8e73ba02b9c3bf1e36350de7b3c.tar.gz pleroma-d4b889783c9ab8e73ba02b9c3bf1e36350de7b3c.zip |
Merge branch 'fix-duplicate-inbox-deliveries' into 'develop'
Fix duplicate inbox deliveries
See merge request pleroma/pleroma!4031
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/publisher.ex | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/publisher.ex b/lib/pleroma/web/activity_pub/publisher.ex index cc47b3d27..fb7c6f005 100644 --- a/lib/pleroma/web/activity_pub/publisher.ex +++ b/lib/pleroma/web/activity_pub/publisher.ex @@ -255,7 +255,10 @@ defmodule Pleroma.Web.ActivityPub.Publisher do [priority_recipients, recipients] |> Enum.map(fn recipients -> recipients - |> Enum.map(fn actor -> actor.inbox end) + |> Enum.map(fn %User{} = user -> + determine_inbox(activity, user) + end) + |> Enum.uniq() |> Enum.filter(fn inbox -> should_federate?(inbox, public) end) |> Instances.filter_reachable() end) @@ -302,7 +305,10 @@ defmodule Pleroma.Web.ActivityPub.Publisher do recipients(actor, activity) |> Enum.map(fn recipients -> recipients - |> Enum.map(fn actor -> actor.inbox end) + |> Enum.map(fn %User{} = user -> + determine_inbox(activity, user) + end) + |> Enum.uniq() |> Enum.filter(fn inbox -> should_federate?(inbox, public) end) end) |