summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorfeld <feld@feld.me>2024-01-11 20:21:57 +0000
committerfeld <feld@feld.me>2024-01-11 20:21:57 +0000
commitd4b889783c9ab8e73ba02b9c3bf1e36350de7b3c (patch)
treee8e11f73f5c937414b8b1bd9807496d1d9217bc1 /lib
parent8bc59e9743534f1be5a751ea857c74a5637f63ed (diff)
parent379d7fafd53686886643b4886d71b41f4d594fbe (diff)
downloadpleroma-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.ex10
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)