federator: actually relay the public activities
authorWilliam Pitcock <nenolod@dereferenced.org>
Mon, 6 Aug 2018 07:43:37 +0000 (07:43 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Mon, 6 Aug 2018 08:22:14 +0000 (08:22 +0000)
lib/pleroma/web/activity_pub/relay.ex
lib/pleroma/web/federator/federator.ex

index 29ece7f1bb75aad0f6e97fffb8aef2d11411613d..f5cf8b7f53558172146382c31be0aaf01ec772ce 100644 (file)
@@ -1,5 +1,5 @@
 defmodule Pleroma.Web.ActivityPub.Relay do
-  alias Pleroma.User
+  alias Pleroma.{User, Object}
   alias Pleroma.Web.ActivityPub.ActivityPub
   require Logger
 
@@ -30,4 +30,13 @@ defmodule Pleroma.Web.ActivityPub.Relay do
 
     :ok
   end
+
+  def publish(activity) do
+    with %User{} = user <- get_actor(),
+         %Object{} = object <- Object.normalize(activity.data["object"]["id"]) do
+      ActivityPub.announce(user, object)
+    else
+      e -> Logger.error("error: #{inspect(e)}")
+    end
+  end
 end
index ccefb0bdfada9691bc3aa8847e131c683d01b51e..94e3979beb9ef17721575b5e3d19ee936665f012 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,9 @@ defmodule Pleroma.Web.Federator do
 
         Logger.info(fn -> "Sending #{activity.data["id"]} out via Salmon" end)
         Pleroma.Web.Salmon.publish(actor, activity)
+
+        Logger.info(fn -> "Relaying #{activity.data["id"]} out" end)
+        Pleroma.Web.ActivityPub.Relay.publish(activity)
       end
 
       Logger.info(fn -> "Sending #{activity.data["id"]} out via AP" end)