From 08f35169d1b10d683eb8769261a10f585417a4c0 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Fri, 19 Nov 2021 17:56:48 +0100 Subject: [PATCH] Fix sending group events to followers on Mastodon Signed-off-by: Thomas Citharel --- lib/federation/activity_pub/utils.ex | 11 +++++++---- lib/federation/activity_stream/converter/event.ex | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/federation/activity_pub/utils.ex b/lib/federation/activity_pub/utils.ex index d93384b6f..c19f7688f 100644 --- a/lib/federation/activity_pub/utils.ex +++ b/lib/federation/activity_pub/utils.ex @@ -458,10 +458,8 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do Logger.debug("Making announce data for a group private object") to = - (object["to"] || []) - |> MapSet.new() - |> MapSet.intersection(MapSet.new([actor.followers_url, actor.members_url])) - |> MapSet.to_list() + Map.get(object, "to", []) ++ + Map.get(object, "cc", []) ++ [actor.followers_url, actor.members_url] {to, []} else @@ -478,6 +476,11 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do "cc" => cc } + data = + if object["attributedTo"], + do: Map.put(data, "attributedTo", object["attributedTo"]), + else: data + if activity_id, do: Map.put(data, "id", activity_id), else: data end diff --git a/lib/federation/activity_stream/converter/event.ex b/lib/federation/activity_stream/converter/event.ex index 62801441f..1ec250b16 100644 --- a/lib/federation/activity_stream/converter/event.ex +++ b/lib/federation/activity_stream/converter/event.ex @@ -107,7 +107,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do def model_to_as(%EventModel{} = event) do {to, cc} = if event.visibility == :public, - do: {[@ap_public], []}, + do: {[@ap_public], [event.organizer_actor.followers_url]}, else: {[attributed_to_or_default(event).followers_url], [@ap_public]} %{