activitypub utils: fix recipient check when the message is unaddressed (mastodon)
[akkoma] / lib / pleroma / web / federator / federator.ex
index 8ca530031dbc80708fa8d7c66b426b2eebbbd692..078f3ec119baa2206c83d426e88b0fdb38225db8 100644 (file)
@@ -4,6 +4,7 @@ defmodule Pleroma.Web.Federator do
   alias Pleroma.Activity
   alias Pleroma.Web.{WebFinger, Websub}
   alias Pleroma.Web.ActivityPub.ActivityPub
+  alias Pleroma.Web.ActivityPub.Relay
   alias Pleroma.Web.ActivityPub.Transmogrifier
   alias Pleroma.Web.ActivityPub.Utils
   require Logger
@@ -69,6 +70,11 @@ defmodule Pleroma.Web.Federator do
 
         Logger.info(fn -> "Sending #{activity.data["id"]} out via Salmon" end)
         Pleroma.Web.Salmon.publish(actor, activity)
+
+        if Mix.env() != :test do
+          Logger.info(fn -> "Relaying #{activity.data["id"]} out" end)
+          Pleroma.Web.ActivityPub.Relay.publish(activity)
+        end
       end
 
       Logger.info(fn -> "Sending #{activity.data["id"]} out via AP" end)
@@ -95,7 +101,7 @@ defmodule Pleroma.Web.Federator do
     params = Utils.normalize_params(params)
 
     with {:ok, _user} <- ap_enabled_actor(params["actor"]),
-         nil <- Activity.get_by_ap_id(params["id"]),
+         nil <- Activity.normalize(params["id"]),
          {:ok, _activity} <- Transmogrifier.handle_incoming(params) do
     else
       %Activity{} ->